diff --git a/changelog.txt b/changelog.txt index 87cb9fe9fa5..6530fca9829 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,15 @@ +# January 2025 +• [Artillery] The High/Low Trajectory toggle has been removed and been automated. Both modes now share the same damage and AOE. Aiming low is preferred, but if there's no low trajectory targets in range or the manually selected target cannot be shot with low trajectory, high trajectory will be used instead for a short time. + The following units are affected: + - [Gauntlet] (T1 Plasma Artillery Turret) + - [Agitator] (T1 Plasma Artillery Turret) + - [Rattlesnake] (T2 Plasma Popup Artillery) + - [Persecutor] (T2 Plasma Popup Artillery) + - [Vanguard] (T3 Mobile All-Terrain Artillery) +• [Angler] The T2 Cortex torpedo bomber now drops 1 large torpedo instead of 3 small ones. The large torpedo is slightly slower but has some aoe +• [Serpent] The Arm T2 battlesub now fires 2 medium torpedos at once instead of 1 large one, overall dps unchanged but some aoe is added +• [Kraken] The Cor T2 battlesub's torpedo aoe increased + # December 2024 • [Impulse] Nukes + Plasma Cannons + Shiva + Catapult + Vanguard + Tzar + Fatboy + Banisher + Poison Arrow + Gunslinger + Ballistic Missile Launchers got impulse added to their weapon. High-HP units with low mass got a mass increase. • [Tremor] Impulse 140% -> 80%, EdgeEffectiveness 90% -> 15% diff --git a/common/configs/LavaMaps/AcidicQuarry.lua b/common/configs/LavaMaps/AcidicQuarry.lua new file mode 100644 index 00000000000..c321930dc43 --- /dev/null +++ b/common/configs/LavaMaps/AcidicQuarry.lua @@ -0,0 +1,26 @@ +local conf = { + grow = 0, + effectBurst = false, + level = 5, + colorCorrection = "vec3(0.26, 1.0, 0.03)", + --coastColor = "vec3(0.6, 0.7, 0.03)", + coastLightBoost = 1.2, + coastWidth = 10.0, + fogColor = "vec3(1.60, 0.8, 0.3)", + --coastWidth = 30.0, + lavaParallaxDepth = 32.0, + lavaParallaxOffset = 0.2, + swirlFreq = 0.008, + swirlAmp = 0.017, + uvScale = 2.2, + specularExp = 12.0, + tideAmplitude = 3, + tidePeriod = 40, + fogFactor = 0.13, + fogHeight = 36, + fogAbove = 0.1, + fogDistortion = 2.0, + tideRhym = { { 4, 0.05, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Claymore.lua b/common/configs/LavaMaps/Claymore.lua new file mode 100644 index 00000000000..5eaa03e0da1 --- /dev/null +++ b/common/configs/LavaMaps/Claymore.lua @@ -0,0 +1,18 @@ +local conf = { + grow = 0, + effectBurst = false, + diffuseEmitTex = "LuaUI/images/lava/lava2_diffuseemitblue.dds", + colorCorrection = "vec3(0.4, 0.5, 0.4)", + coastColor = "vec3(0.24, 0.46, 0.5)", + coastLightBoost = 0.3, + fogColor = "vec3(0.24, 0.46, 0.5)", + fogFactor = 0.01, + fogHeight = 15, + fogAbove = 4.0, + fogDistortion = 2.0, + tideAmplitude = 0.3, + tidePeriod = 1000, + tideRhym = { { -1, 0.05, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Forge.lua b/common/configs/LavaMaps/Forge.lua new file mode 100644 index 00000000000..aeb5268b621 --- /dev/null +++ b/common/configs/LavaMaps/Forge.lua @@ -0,0 +1,22 @@ +local conf = { + level = 0, + damage = 150, + tideAmplitude = 3, + tidePeriod = 95, + diffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds", + normalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds", + losDarkness = 0.7, + colorCorrection = "vec3(1.1, 1.0, 0.88)", + shadowStrength = 1.0, + coastColor = "vec3(2.2, 0.4, 0.0)", + coastLightBoost = 0.7, + coastWidth = 36.0, + fogFactor = 0.02, + fogColor = "vec3(2.0, 0.31, 0.0)", + fogHeight = 35, + fogAbove = 0.18, + + tideRhym = { { -1, 0.25, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Ghenna Rising.lua b/common/configs/LavaMaps/Ghenna Rising.lua new file mode 100644 index 00000000000..ad185b4c46d --- /dev/null +++ b/common/configs/LavaMaps/Ghenna Rising.lua @@ -0,0 +1,21 @@ +local conf = { + level = 251, + damage = 750, + colorCorrection = "vec3(0.7, 0.7, 0.7)", + swirlFreq = 0.017, + swirlAmp = 0.0024, + tideAmplitude = 3, + specularExp = 4.0, + shadowStrength = 0.9, + coastLightBoost = 0.8, + uvScale = 1.5, + tideRhym = { { 250, 0.10, 15 }, + { 415, 0.05, 30 }, + { 250, 0.10, 5*60 }, + { 415, 0.05, 30 }, + { 250, 0.10, 5*60 }, + { 415, 0.05, 3*30 }, + { 250, 0.10, 10*60 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Hotstepper 5.lua b/common/configs/LavaMaps/Hotstepper 5.lua new file mode 100644 index 00000000000..4f85211cf34 --- /dev/null +++ b/common/configs/LavaMaps/Hotstepper 5.lua @@ -0,0 +1,16 @@ +local conf = { + level = 100, + damage = 130, + tideRhym = { { 90, 0.25, 5*60 }, + { 215, 0.10, 5 }, + { 90, 0.25, 5*60 }, + { 290, 0.15, 5 }, + { 90, 0.25, 4*60 }, + { 355, 0.20, 5 }, + { 90, 0.25, 4*60 }, + { 390, 0.20, 5 }, + { 90, 0.25, 2*60 }, + { 440, 0.04, 2*60 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Hyperion Shale.lua b/common/configs/LavaMaps/Hyperion Shale.lua new file mode 100644 index 00000000000..a081c4ff864 --- /dev/null +++ b/common/configs/LavaMaps/Hyperion Shale.lua @@ -0,0 +1,18 @@ +local conf = { + grow = 0, + effectBurst = false, + diffuseEmitTex = "LuaUI/images/lava/lava2_diffuseemitblue.dds", + colorCorrection = "vec3(1.0, 1.0, 1.0)", + coastColor = "vec3(0.0, 0.35, 0.9)", + coastLightBoost = 0.3, + fogColor = "vec3(0.0, 0.3, 1.0)", + fogFactor = 0.01, + fogHeight = 15, + fogAbove = 4.0, + fogDistortion = 2.0, + tideAmplitude = 0.3, + tidePeriod = 1000, + tideRhym = { { -1, 0.05, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Incandescence Remake.lua b/common/configs/LavaMaps/Incandescence Remake.lua new file mode 100644 index 00000000000..ad65622d5ee --- /dev/null +++ b/common/configs/LavaMaps/Incandescence Remake.lua @@ -0,0 +1,22 @@ +local conf = { + level = 207, + damage = 150, + tideAmplitude = 3, + tidePeriod = 95, + diffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds", + normalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds", + losDarkness = 0.7, + colorCorrection = "vec3(1.1, 1.0, 0.88)", + shadowStrength = 1.0, + coastColor = "vec3(2.2, 0.4, 0.0)", + coastLightBoost = 0.7, + coastWidth = 36.0, + fogFactor = 0.08, + fogColor = "vec3(2.0, 0.31, 0.0)", + fogHeight = 85, + fogAbove = 0.18, + + tideRhym = { { 206, 0.25, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Kings Assault.lua b/common/configs/LavaMaps/Kings Assault.lua new file mode 100644 index 00000000000..d411522acbc --- /dev/null +++ b/common/configs/LavaMaps/Kings Assault.lua @@ -0,0 +1,16 @@ +local conf = { + grow = 0, + colorCorrection = "vec3(1.0, 1.0, 1.0)", + coastColor = "vec3(1.0, 0.25, 0.0)", + coastLightBoost = 0.3, + fogColor = "vec3(1.5, 0.1, 0.0)", + fogFactor = 0.01, + fogHeight = 15, + fogAbove = 4.0, + fogDistortion = 2.0, + tideAmplitude = 0.3, + tidePeriod = 1000, + tideRhym = { { -1, 0.05, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Pit of Azar.lua b/common/configs/LavaMaps/Pit of Azar.lua new file mode 100644 index 00000000000..6b4c52921c0 --- /dev/null +++ b/common/configs/LavaMaps/Pit of Azar.lua @@ -0,0 +1,23 @@ +local conf = { + level = 0, + damage = 150, + tideAmplitude = 3, + tidePeriod = 95, + diffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds", + normalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds", + losDarkness = 0.7, + colorCorrection = "vec3(1.1, 1.0, 0.88)", + shadowStrength = 1.0, + coastColor = "vec3(2.2, 0.4, 0.0)", + coastLightBoost = 0.7, + coastWidth = 36.0, + fogFactor = 0.02, + fogColor = "vec3(2.0, 0.31, 0.0)", + fogHeight = 35, + fogAbove = 0.18, + fogDistortion = 2.0, + uvScale = 10.0, + tideRhym = { { -1, 0.25, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/README.md b/common/configs/LavaMaps/README.md new file mode 100644 index 00000000000..fbc04655d84 --- /dev/null +++ b/common/configs/LavaMaps/README.md @@ -0,0 +1,14 @@ +### Lava Map Configuration Directory + +Place map specific lava configuration files here. + +Note the lava configuration can also be included inside the map pack in mapconfig/lava.lua (recommmended). + +The mapconfig has precedence over game provided configuration, but overrideMap can be set to true inside the file here to make it have priority. + +The game will try to find the full name with version, like "Ghenna Rising 4.0.1.lua", if not found then it will search for a configuration without the version "Ghenna Rising.lua". + +### Note for map makers + +You can just take a file from here and place it inside mapconfig/lava.lua for your map to have lava. + diff --git a/common/configs/LavaMaps/Sector 318C.lua b/common/configs/LavaMaps/Sector 318C.lua new file mode 100644 index 00000000000..8ad658a1823 --- /dev/null +++ b/common/configs/LavaMaps/Sector 318C.lua @@ -0,0 +1,28 @@ +local conf = { + grow = 0, + effectBurst = false, + level = 5, + diffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds", + normalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds", + colorCorrection = "vec3(0.2, 0.65, 0.03)", + --coastColor = "vec3(0.6, 0.7, 0.03)", + coastLightBoost = 0.6, + coastWidth = 60.0, + fogColor = "vec3(1.60, 0.8, 0.3)", + --coastWidth = 30.0, + lavaParallaxDepth = 8.0, + lavaParallaxOffset = 0.2, + swirlFreq = 0.008, + swirlAmp = 0.017, + uvScale = 2.2, + specularExp = 12.0, + tideAmplitude = 3, + tidePeriod = 40, + fogFactor = 0.13, + fogHeight = 36, + fogAbove = 0.1, + fogDistortion = 2.0, + tideRhym = { { 4, 0.05, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/SpeedMetal BAR.lua b/common/configs/LavaMaps/SpeedMetal BAR.lua new file mode 100644 index 00000000000..e0ea3de8be1 --- /dev/null +++ b/common/configs/LavaMaps/SpeedMetal BAR.lua @@ -0,0 +1,16 @@ +local conf = { + grow = 0, + effectBurst = false, + level = 1, + colorCorrection = "vec3(0.3, 0.1, 1.5)", + --coastWidth = 40.0, + --coastColor = "vec3(1.7, 0.02, 1.4)", + fogColor = "vec3(0.60, 0.02, 1)", + swirlFreq = 0.025, + swirlAmp = 0.003, + tideAmplitude = 3, + tidePeriod = 50, + tideRhym = { { 1, 0.05, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Stronghold.lua b/common/configs/LavaMaps/Stronghold.lua new file mode 100644 index 00000000000..fffa4262eee --- /dev/null +++ b/common/configs/LavaMaps/Stronghold.lua @@ -0,0 +1,28 @@ +local config = { + grow = 0, + effectBurst = false, + level = 5, + diffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds", + normalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds", + colorCorrection = "vec3(0.2, 0.65, 0.03)", + --coastColor = "vec3(0.6, 0.7, 0.03)", + coastLightBoost = 0.6, + coastWidth = 60.0, + fogColor = "vec3(1.60, 0.8, 0.3)", + --coastWidth = 30.0, + lavaParallaxDepth = 8.0, + lavaParallaxOffset = 0.2, + swirlFreq = 0.008, + swirlAmp = 0.017, + uvScale = 2.2, + specularExp = 12.0, + tideAmplitude = 3, + tidePeriod = 40, + fogFactor = 0.13, + fogHeight = 36, + fogAbove = 0.1, + fogDistortion = 2.0, + tideRhym = { { 4, 0.05, 5*6000 } }, +} + +return config diff --git a/common/configs/LavaMaps/Thermal Shock.lua b/common/configs/LavaMaps/Thermal Shock.lua new file mode 100644 index 00000000000..d411522acbc --- /dev/null +++ b/common/configs/LavaMaps/Thermal Shock.lua @@ -0,0 +1,16 @@ +local conf = { + grow = 0, + colorCorrection = "vec3(1.0, 1.0, 1.0)", + coastColor = "vec3(1.0, 0.25, 0.0)", + coastLightBoost = 0.3, + fogColor = "vec3(1.5, 0.1, 0.0)", + fogFactor = 0.01, + fogHeight = 15, + fogAbove = 4.0, + fogDistortion = 2.0, + tideAmplitude = 0.3, + tidePeriod = 1000, + tideRhym = { { -1, 0.05, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/To Kill The Middle.lua b/common/configs/LavaMaps/To Kill The Middle.lua new file mode 100644 index 00000000000..b0e8d2f49a8 --- /dev/null +++ b/common/configs/LavaMaps/To Kill The Middle.lua @@ -0,0 +1,22 @@ +local conf = { + level = 0, + damage = 150, + tideAmplitude = 3, + tidePeriod = 95, + diffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds", + normalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds", + losDarkness = 0.7, + colorCorrection = "vec3(1.1, 1.0, 0.88)", + shadowStrength = 1.0, + coastColor = "vec3(2.2, 0.4, 0.0)", + coastLightBoost = 0.7, + coastWidth = 36.0, + fogFactor = 0.08, + fogColor = "vec3(2.0, 0.31, 0.0)", + fogHeight = 85, + fogAbove = 0.18, + + tideRhym = { { -1, 0.25, 5*6000 } }, +} + +return conf diff --git a/common/configs/LavaMaps/Zed Remake.lua b/common/configs/LavaMaps/Zed Remake.lua new file mode 100644 index 00000000000..a427ca58963 --- /dev/null +++ b/common/configs/LavaMaps/Zed Remake.lua @@ -0,0 +1,16 @@ +local conf = { + grow = 0, + level = 1, + damage = 75, + uvScale = 1.5, + colorCorrection = "vec3(0.4, 0.09, 1.2)", + losDarkness = 0.8, + coastColor = "vec3(0.8, 0.03, 1.1)", + fogColor = "vec3(0.60, 0.10, 1.1)", + coastLightBoost = 1.3, + tideAmplitude = 1.5, + tidePeriod = 150, + tideRhym = { { 0, 0.3, 5*6000 } }, +} + +return conf diff --git a/common/testing/test_extra_utils.lua b/common/testing/test_extra_utils.lua new file mode 100644 index 00000000000..05b9ca2bf51 --- /dev/null +++ b/common/testing/test_extra_utils.lua @@ -0,0 +1,85 @@ + +local levelTimeout = 100 +local heightMapChanged = false +local autoHeightMap = false +local currentLevel = 0 + +local function setAutoHeightMap(enable) + autoHeightMap = enable + Spring.Echo("Set autoheightmap", enable) +end + +local function levelHeightMap(level) + local prevLevel = currentLevel + if level == nil then level = 10 end + if prevLevel == level then return end + SyncedRun(function(locals) + local level = locals.level - locals.prevLevel + Spring.LevelHeightMap(0, 0, Game.mapSizeX, Game.mapSizeZ, level) + Spring.RebuildSmoothMesh(0, 0, Game.mapSizeX, Game.mapSizeZ) + end, levelTimeout) + currentLevel = level + heightMapChanged = true +end + +local function restoreHeightMap(force) + if not force and not heightMapChanged then return end + SyncedRun(function() + Spring.RevertHeightMap(0, 0, Game.mapSizeX, Game.mapSizeZ, 1.0) + Spring.RebuildSmoothMesh(0, 0, Game.mapSizeX, Game.mapSizeZ) + end, levelTimeout) + heightMapChanged = false + currentLevel = 0 +end + +-- Internal methods + +local function startTests() + if autoHeightMap then + levelHeightMap() + end +end + +local function endTests() + if autoHeightMap then + restoreHeightMap(true) + end +end + +local function endTest() + if autoHeightMap then + levelHeightMap() + else + restoreHeightMap() + end +end + +local linkActions = function(widget) + widgetHandler.actionHandler:AddAction( + widget, + "testsautoheightmap", + function(cmd, optLine, optWords, data, isRepeat, release, actions) + local enable = not autoHeightMap + local enableOpt = optWords[1] + if enableOpt == 'on' or enableOpt == '1' then + enable = true + elseif enableOpt == 'off' or enableOpt == '0' then + enable = false + end + setAutoHeightMap(enable) + end, + nil, + "t" + ) +end + +return { + exports = { + levelHeightMap = levelHeightMap, + restoreHeightMap = restoreHeightMap, + }, + endTest = endTest, + startTests = startTests, + endTests = endTests, + linkActions = linkActions, +} diff --git a/effects/barrelshot.lua b/effects/barrelshot.lua index 321a08e3f08..407251e2c42 100644 --- a/effects/barrelshot.lua +++ b/effects/barrelshot.lua @@ -352,7 +352,7 @@ local definitions = { smoke = { air = true, class = [[CSimpleParticleSystem]], - count = 2, + count = 0, ground = true, water = true, properties = { @@ -363,7 +363,7 @@ local definitions = { emitrotspread = 9, emitvector = [[dir]], gravity = [[-0.006 r0.012, 0, -0.006 r0.012]], - numparticles = 1, + numparticles = 2, particlelife = 13, particlelifespread = 9, particlesize = 4, @@ -551,23 +551,23 @@ definitions["barrelshot-larger"] = table.copy(definitions["barrelshot-medium"]) definitions["barrelshot-larger"].fire.properties.length = definitions["barrelshot-larger"].fire.properties.length * size * 1.1 definitions["barrelshot-larger"].fire.properties.size = definitions["barrelshot-larger"].fire.properties.size * size * 1.06 definitions["barrelshot-larger"].fire.properties.sizegrowth = definitions["barrelshot-larger"].fire.properties.sizegrowth * 1.5 -definitions["barrelshot-larger"].fire.properties.ttl = definitions["barrelshot-larger"].fire.properties.ttl * 1.08 +definitions["barrelshot-larger"].fire.properties.ttl = definitions["barrelshot-larger"].fire.properties.ttl * 1.04 definitions["barrelshot-larger"].fire2.properties.length = definitions["barrelshot-larger"].fire2.properties.length * size * 1.1 definitions["barrelshot-larger"].fire2.properties.size = definitions["barrelshot-larger"].fire2.properties.size * size * 1.06 definitions["barrelshot-larger"].fire2.properties.sizegrowth = definitions["barrelshot-larger"].fire2.properties.sizegrowth * 1.5 -definitions["barrelshot-larger"].fire2.properties.ttl = definitions["barrelshot-larger"].fire2.properties.ttl * 5.04 +definitions["barrelshot-larger"].fire2.properties.ttl = definitions["barrelshot-larger"].fire2.properties.ttl * 1.04 definitions["barrelshot-larger"].fireglow.properties.particlesize = definitions["barrelshot-larger"].fireglow.properties.particlesize * size definitions["barrelshot-larger"].smoke2.count = 6 definitions["barrelshot-larger"].smoke2.properties.particlelife = definitions["barrelshot-larger"].smoke2.properties.particlelife * size * 0.5 -definitions["barrelshot-larger"].smoke2.properties.particlelifespread = definitions["barrelshot-larger"].smoke2.properties.particlelifespread * size * 0.9 -definitions["barrelshot-larger"].smoke2.properties.particlesize = definitions["barrelshot-larger"].smoke2.properties.particlesize * size * 1.5 -definitions["barrelshot-larger"].smoke2.properties.particlesizespread = definitions["barrelshot-larger"].smoke2.properties.particlesizespread * size * 0.9 +definitions["barrelshot-larger"].smoke2.properties.particlelifespread = definitions["barrelshot-larger"].smoke2.properties.particlelifespread * size +definitions["barrelshot-larger"].smoke2.properties.particlesize = definitions["barrelshot-larger"].smoke2.properties.particlesize * size * 1.3 +definitions["barrelshot-larger"].smoke2.properties.particlesizespread = definitions["barrelshot-larger"].smoke2.properties.particlesizespread * size * 1.2 definitions["barrelshot-larger"].smoke2.properties.particlespeed = definitions["barrelshot-larger"].smoke2.properties.particlespeed * size -definitions["barrelshot-larger"].smoke2.properties.particlespeedspread = definitions["barrelshot-larger"].smoke2.properties.particlespeedspread * size * 0.5 +definitions["barrelshot-larger"].smoke2.properties.particlespeedspread = definitions["barrelshot-larger"].smoke2.properties.particlespeedspread * size definitions["barrelshot-larger"].smoke2.properties.airdrag = .95 definitions["barrelshot-larger"].smoke.properties.particlelifespread = definitions["barrelshot-larger"].smoke.properties.particlelifespread * size definitions["barrelshot-larger"].smoke.properties.particlesize = definitions["barrelshot-larger"].smoke.properties.particlesize * size -definitions["barrelshot-larger"].smoke.properties.particlesizespread = definitions["barrelshot-larger"].smoke.properties.particlesizespread * size * 0.9 +definitions["barrelshot-larger"].smoke.properties.particlesizespread = definitions["barrelshot-larger"].smoke.properties.particlesizespread * size definitions["barrelshot-larger"].smoke.properties.particlespeed = definitions["barrelshot-larger"].smoke.properties.particlespeed * size * 1.05 definitions["barrelshot-larger"].smoke.properties.particlespeedspread = definitions["barrelshot-larger"].smoke.properties.particlespeedspread * size * 1.15 diff --git a/effects/burn.lua b/effects/burn.lua index 44703b9ff66..8c70565d42a 100644 --- a/effects/burn.lua +++ b/effects/burn.lua @@ -388,58 +388,24 @@ return { count = 1, ground = true, properties = { - airdrag = 0.66, - colormap = [[0.7 0.5 1.0 0.5 0.90 0.88 0.9 0.25 0.30 0.18 0.02 0.09 0 0 0 0.01]], + airdrag = 0.55, + colormap = [[1 0.98 0.85 0.4 0.85 0.58 0.22 0.1 0.3 0.18 0.02 0.01 0 0 0 0.01]], directional = true, - emitrot = 4, - emitrotspread = 12, + emitrot = 5, + emitrotspread = 22, emitvector = [[dir]], - gravity = [[0, 0.30, 0]], + gravity = [[0, 0.35, 0]], numparticles = 1, - particlelife = 5.5, - particlelifespread = 8, - particlesize = 3, - particlesizespread = 1.8, - particlespeed = 0.5, - particlespeedspread = 0.8, + particlelife = 3.5, + particlelifespread = 2, + particlesize = 1, + particlesizespread = 0.8, + particlespeed = 1.4, + particlespeedspread = 2.9, pos = [[-0.5 r1, 1, -0.5 r1]], - sizegrowth = 0.6, - sizemod = 1.0, - rotParams = [[-5 r10, 0, -180 r360]], - animParams = [[16,6,8 r15]], - texture = [[BARFlame02]], - useairlos = false, - }, - }, - }, - - ["pilotlightxl"] = { - flame = { - air = true, - class = [[CSimpleParticleSystem]], - count = 1, - ground = true, - properties = { - airdrag = 0.75, - colormap = [[0.7 0.5 1.0 0.3 0.90 0.88 0.9 0.15 0.30 0.18 0.02 0.06 0 0 0 0.01]], - directional = true, - emitrot = 4, - emitrotspread = 8, - emitvector = [[dir]], - gravity = [[0, 0.15, 0]], - numparticles = 1, - particlelife = 7.5, - particlelifespread = 14, - particlesize = 4, - particlesizespread = 2.8, - particlespeed = 0.5, - particlespeedspread = 0.8, - pos = [[-0.5 r1, 0, -0.5 r1]], - sizegrowth = 0.3, + sizegrowth = 0.9, sizemod = 1.0, - rotParams = [[-15 r10, 0, -180 r360]], - animParams = [[16,6,12 r15]], - texture = [[BARFlame02]], + texture = [[fire]], useairlos = false, }, }, diff --git a/effects/cannons.lua b/effects/cannons.lua index 9302f62442e..a7b0c802efe 100644 --- a/effects/cannons.lua +++ b/effects/cannons.lua @@ -82,28 +82,6 @@ local definitions = { }, }, - }, - ["impulse-trail"] = { - flame = { - air = true, - class = [[CBitmapMuzzleFlame]], - count = 1, - ground = true, - underwater = true, - water = true, - properties = { - colormap = [[0.9 0.75 0.4 0.006 0.8 0.70 0.3 0.005 0.8 0.5 0.1 0.005 0 0 0 0.01]], - dir = [[dir]], - frontoffset = 0, - fronttexture = [[none]], - length = -2.8, - sidetexture = [[trail]], - size = 5.5, - sizegrowth = -0.09, - ttl = 3, - useairlos = true, - }, - }, }, ["arty-fast"] = { flame = { @@ -114,15 +92,15 @@ local definitions = { underwater = true, water = true, properties = { - colormap = [[0.9 0.75 0.3 0.009 0.9 0.7 0.2 0.007 0.9 0.3 0.1 0.004 0 0 0 0.01]], + colormap = [[0.9 0.65 0.3 0.006 0.9 0.6 0.2 0.005 0.9 0.3 0.1 0.004 0 0 0 0.01]], dir = [[dir]], frontoffset = 0, fronttexture = [[none]], - length = -4.1, + length = -3.7, sidetexture = [[trail]], - size = 2.7, + size = 2.4, sizegrowth = -0.05, - ttl = 8, + ttl = 2, useairlos = true, }, }, @@ -279,12 +257,12 @@ local definitions = { colormap = [[0.9 0.65 0.3 0.01 0.9 0.6 0.2 0.01 0.9 0.3 0.1 0.01 0 0 0 0.01]], dir = [[dir]], frontoffset = 0, --0.04 - fronttexture = [[null]], --was glow before - length = -6, + fronttexture = [[glow]], --glow + length = -10, sidetexture = [[shot]], - size = 20.2, - sizegrowth = -0.20, - ttl = 2, + size = 6.2, + sizegrowth = -0.18, + ttl = 4, --rotParams = [[0 , 0, -180 r360]], useairlos = true, castShadow = true, diff --git a/effects/custom_explosions.lua b/effects/custom_explosions.lua index 33bb7e1f657..b00d4b6f16b 100644 --- a/effects/custom_explosions.lua +++ b/effects/custom_explosions.lua @@ -1874,7 +1874,7 @@ local definitions = { rotParams = [[4 r2, -0.5, -180 r360]], colormap = [[0.82 0.99 0.22 0.45 0.72 0.92 0.2 0.30 0 0 0 0.01]], size = 700, - ttl = 50, + ttl = 250, sizegrowth = 0, texture = [[groundflash]], alwaysvisible = true, @@ -1891,7 +1891,7 @@ local definitions = { colormap = [[0.82 0.99 0.22 0.77 0 0 0 0.01]], size = 190, sizegrowth = 0, - ttl = 70, + ttl = 90, texture = [[groundflash]], alwaysvisible = true, }, diff --git a/effects/dgunprojectile.lua b/effects/dgunprojectile.lua index fe870bf8635..ffaa6e04fd3 100644 --- a/effects/dgunprojectile.lua +++ b/effects/dgunprojectile.lua @@ -208,7 +208,7 @@ brightflare = { explosion = { air = true, class = [[CSimpleParticleSystem]], - count = 2, + count = 1, ground = true, water = true, underwater = true, @@ -221,15 +221,15 @@ brightflare = { emitvector = [[0, 1, 0]], gravity = [[0, -0.06, 0]], numparticles = 1, - particlelife = 14, + particlelife = 9, particlelifespread = 5, - particlesize = 15.7, - particlesizespread = 6.4, + particlesize = 5.7, + particlesizespread = 3.4, particlespeed = 1.9, particlespeedspread = 2.15, pos = [[0, 7, 0]], rotParams = [[-20 r40, -20 r40, -180 r360]], - sizegrowth = -0.8, + sizegrowth = 0.2, sizemod = 1.02, texture = [[flashside3]], useairlos = false, @@ -239,7 +239,7 @@ brightflare = { shockwave = { air = true, class = [[CBitmapMuzzleFlame]], - count = 0, + count = 1, ground = true, underwater = false, water = false, diff --git a/effects/genericshellexplosion-lightning.lua b/effects/genericshellexplosion-lightning.lua index 17a73c76dc0..d2354f3a68a 100644 --- a/effects/genericshellexplosion-lightning.lua +++ b/effects/genericshellexplosion-lightning.lua @@ -449,7 +449,7 @@ local definitions = { underwater = true, properties = { airdrag = 0.7, - colormap = [[0.7 0.5 0.9 0.03 0.5 0.4 0.9 0.01]], + colormap = [[0.7 0.7 0.9 0.03 0.5 0.5 0.9 0.01]], directional = true, emitrot = 45, emitrotspread = 32, @@ -458,13 +458,13 @@ local definitions = { numparticles = 6, particlelife = 8, particlelifespread = 5, - particlesize = 12, - particlesizespread = 16, - particlespeed = 3, + particlesize = 7, + particlesizespread = 9, + particlespeed = 0, particlespeedspread = 13, rotParams = [[-20 r40, -1 r2, -180 r360]], pos = [[0, 2, 0]], - sizegrowth = 1.4, + sizegrowth = 0.7, sizemod = 1, texture = [[lightninginair]], useairlos = false, @@ -479,7 +479,7 @@ local definitions = { water = true, underwater = true, properties = { - heat = 10, + heat = 16, heatfalloff = 1.15, maxheat = 20, rotParams = [[-120 r250, -80 r160, -180 r360]], @@ -506,7 +506,7 @@ local definitions = { emitrotspread = 40, emitvector = [[0, 1, 0]], gravity = [[0, -0.05, 0]], - numparticles = 6, + numparticles = 8, particlelife = 6, particlelifespread = 8, particlesize = 18, @@ -514,8 +514,8 @@ local definitions = { particlespeed = 14.5, particlespeedspread = 14.4, pos = [[0, 4, 0]], - sizegrowth = -0.3, - sizemod = 0.90, + sizegrowth = 1, + sizemod = 0.78, texture = [[laser]], useairlos = false, drawOrder = 2, @@ -524,27 +524,14 @@ local definitions = { electricstorm = { air = true, class = [[CExpGenSpawner]], - count = 4, + count = 5, ground = true, water = true, underwater = true, properties = { - delay = [[10 r30]], + delay = [[10 r50]], explosiongenerator = [[custom:lightning_storm_emp]], - pos = [[-40 r80, 20 r10, -40 r80]], - }, - }, - electricstorm2 = { - air = true, - class = [[CExpGenSpawner]], - count = 4, - ground = true, - water = true, - underwater = true, - properties = { - delay = [[10 r30]], - explosiongenerator = [[custom:lightning_storm_emp2]], - pos = [[-40 r80, 20 r10, -40 r80]], + pos = [[-50 r120, 20, -50 r120]], }, }, shockwave = { @@ -556,34 +543,34 @@ local definitions = { water = true, properties = { --colormap = [[0 0 0 0 0.33 0.33 1 0.18 0.3 0.3 0.9 0.75 0.15 0.15 0.5 0.30 0.10 0.10 0.3 0.008 0.05 0.05 0.1 0.005 0.01 0.01 0.01 0.02]], - colormap = [[0 0 0 0 0.55 0.45 0.90 0.16 0.5 0.43 0.90 0.32 0.35 0.25 0.70 0.22 0.15 0.15 0.3 0.007 0.05 0.05 0.1 0.004 0.01 0.01 0.01 0.02]], + colormap = [[0 0 0 0 0.45 0.45 0.95 0.18 0.4 0.4 0.98 0.35 0.25 0.25 0.7 0.25 0.10 0.10 0.3 0.007 0.05 0.05 0.1 0.004 0.01 0.01 0.01 0.02]], dir = [[0, 1, 0]], --gravity = [[0.0, 0.1, 0.0]], frontoffset = 0, fronttexture = [[blastwave]], length = 45, sidetexture = [[none]], - size = 3.2, + size = 2.2, sizegrowth = [[-24 r6]], ttl = 8, pos = [[0, 5, 0]], drawOrder = 0, }, }, - -- groundflash = { - -- air = true, - -- flashalpha = 0.6, - -- flashsize = 140, - -- ground = true, - -- ttl = 15, - -- water = true, - -- underwater = true, - -- color = { - -- [1] = 0.4, - -- [2] = 0.5, - -- [3] = 0.8, - -- }, - -- }, + groundflash = { + air = true, + flashalpha = 0.6, + flashsize = 140, + ground = true, + ttl = 35, + water = true, + underwater = true, + color = { + [1] = 0.4, + [2] = 0.5, + [3] = 0.8, + }, + }, -- shockwave = { -- class = [[CSpherePartSpawner]], -- count = 1, @@ -599,96 +586,95 @@ local definitions = { -- --alwaysvisible = true, -- }, -- }, - -- grounddust = { - -- air = false, - -- class = [[CSimpleParticleSystem]], - -- count = 2, - -- ground = true, - -- water = true, - -- underwater = true, - -- unit = false, - -- properties = { - -- airdrag = 0.86, - -- colormap = [[0.25 0.25 0.5 0.1 0 0 0 0.0]], - -- directional = false, - -- emitrot = 90, - -- emitrotspread = 2, - -- emitvector = [[0, 1, 0]], - -- gravity = [[-0.03 r0.06, -0.01 r0.08, -0.03 r0.06]], - -- numparticles = 2, - -- particlelife = 60, - -- particlelifespread = 45, - -- particlesize = 64, - -- particlesizespread = 52, - -- particlespeed = 6.5, - -- particlespeedspread = 3, - -- rotParams = [[-4 r8, -1 r2, -180 r360]], - -- pos = [[0, 40, 0]], - -- sizegrowth = [[0.25 r0.12]], - -- sizemod = 1, - -- texture = [[smoke-ice-anim]], - -- animParams = [[8,8,60 r40]], - -- --alwaysvisible = true, - -- }, - -- }, - -- grounddust2 = { - -- air = false, - -- class = [[CSimpleParticleSystem]], - -- count = 3, - -- ground = true, - -- water = true, - -- underwater = true, - -- unit = false, - -- properties = { - -- airdrag = 0.86, - -- colormap = [[0 0 0 0.01 0.25 0.25 0.5 0.1 0 0 0 0.0]], - -- directional = false, - -- emitrot = 75, - -- emitrotspread = -2, - -- emitvector = [[0, 1, 0]], - -- gravity = [[-0.03 r0.06, -0.02 r0.07, -0.03 r0.06]], - -- numparticles = 1, - -- particlelife = 60, - -- particlelifespread = 40, - -- particlesize = 23, - -- particlesizespread = 42, - -- particlespeed = 3.5, - -- particlespeedspread = 3, - -- rotParams = [[-8 r16, -8 r16, -180 r360]], - -- pos = [[0, 100, 0]], - -- sizegrowth = 0.3, - -- sizemod = 1, - -- texture = [[dirt]], - -- --alwaysvisible = true, - -- }, - -- }, + grounddust = { + air = false, + class = [[CSimpleParticleSystem]], + count = 2, + ground = true, + water = true, + underwater = true, + unit = false, + properties = { + airdrag = 0.86, + colormap = [[0.25 0.25 0.5 0.1 0 0 0 0.0]], + directional = false, + emitrot = 90, + emitrotspread = 2, + emitvector = [[0, 1, 0]], + gravity = [[-0.03 r0.06, -0.01 r0.08, -0.03 r0.06]], + numparticles = 2, + particlelife = 60, + particlelifespread = 45, + particlesize = 64, + particlesizespread = 52, + particlespeed = 6.5, + particlespeedspread = 3, + rotParams = [[-4 r8, -1 r2, -180 r360]], + pos = [[0, 40, 0]], + sizegrowth = [[0.25 r0.12]], + sizemod = 1, + texture = [[smoke-ice-anim]], + animParams = [[8,8,60 r40]], + --alwaysvisible = true, + }, + }, + grounddust2 = { + air = false, + class = [[CSimpleParticleSystem]], + count = 3, + ground = true, + water = true, + underwater = true, + unit = false, + properties = { + airdrag = 0.86, + colormap = [[0 0 0 0.01 0.25 0.25 0.5 0.1 0 0 0 0.0]], + directional = false, + emitrot = 75, + emitrotspread = -2, + emitvector = [[0, 1, 0]], + gravity = [[-0.03 r0.06, -0.02 r0.07, -0.03 r0.06]], + numparticles = 1, + particlelife = 60, + particlelifespread = 40, + particlesize = 23, + particlesizespread = 42, + particlespeed = 3.5, + particlespeedspread = 3, + rotParams = [[-8 r16, -8 r16, -180 r360]], + pos = [[0, 100, 0]], + sizegrowth = 0.3, + sizemod = 1, + texture = [[dirt]], + --alwaysvisible = true, + }, + }, electricity = { air = true, class = [[CSimpleParticleSystem]], - count = 3, + count = 1, ground = true, water = true, underwater = true, properties = { airdrag = 0.85, - --colormap = [[0 0 0 0.0 1 1 1 0.04 0 0 0 0.0 0 0 0 0.0 1 1 1 0.04 0 0 0 0.12 0 0 0 0.0 0 0 0 0.0 1 1 1 0.03 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.025 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.025 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.02 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.015 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.012 0 0 0 0.0 ]], - colormap = [[0 0 0 0.0 1 1 1 0.04 0 0 0 0.0 0 0 0 0.0 1 1 1 0.04 0 0 0 0.12 0 0 0 0.0]], + colormap = [[0 0 0 0.0 1 1 1 0.04 0 0 0 0.0 0 0 0 0.0 1 1 1 0.04 0 0 0 0.12 0 0 0 0.0 0 0 0 0.0 1 1 1 0.03 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.025 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.025 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.02 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.015 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0 0.0 1 1 1 0.012 0 0 0 0.0 ]], directional = true, emitrot = 90, emitrotspread = -30, emitvector = [[0, 1.15, 0]], gravity = [[0, 0.1, 0]], - numparticles = 1, - particlelife = 6, - particlelifespread = 24, + numparticles = 3, + particlelife = 3, + particlelifespread = 30, particlesize = 8, - particlesizespread = 24, + particlesizespread = 16, particlespeed = 1, particlespeedspread = 10, - rotParams = [[-180 r360, 0, 0]], + rotParams = [[-100 r200, 0, -180 r360]], pos = [[0, 1, 0]], sizegrowth = 0.24, - sizemod = 1.02, + sizemod = 1.0, texture = [[lightninginair]], drawOrder = 2, }, @@ -696,7 +682,7 @@ local definitions = { outerflash = { air = true, class = [[CHeatCloudProjectile]], - count = 1, + count = 2, ground = true, water = true, underwater = true, @@ -706,7 +692,7 @@ local definitions = { maxheat = 20, pos = [[r-2 r2, 5, r-2 r2]], rotParams = [[-250 r500, -80 r160, -180 r360]], - size = 16.5, + size = 6.5, sizegrowth = 17, speed = [[0, 1 0, 0]], texture = [[brightblueexplo]], diff --git a/effects/lightning_stormbolt.lua b/effects/lightning_stormbolt.lua index cc1cbf767ca..657e0756ba3 100644 --- a/effects/lightning_stormbolt.lua +++ b/effects/lightning_stormbolt.lua @@ -86,48 +86,18 @@ return { }, }, ["lightning_storm_emp"] = { - -- groundflash = { - -- circlealpha = 1, - -- circlegrowth = 0, - -- flashalpha = 0.17, - -- flashsize = 40, - -- ttl = 3, - -- color = { - -- [1] = 0.66, - -- [2] = 0.66, - -- [3] = 1, - -- }, - -- }, - lightningballs = { - air = true, - class = [[CSimpleParticleSystem]], - count = 1, - ground = true, - water = true, - underwater = true, - properties = { - airdrag = 1, - colormap = [[0 0 0 0.01 0.66 0.66 1 0.05 0.66 0.66 1 0.01 0 0 0 0.01]], - directional = true, - emitrot = 80, - emitrotspread = 120, - emitvector = [[1, 1, 1]], - gravity = [[0, 0, 0]], - numparticles = 1, - particlelife = 1, - particlelifespread = 4, - particlesize = 9, - particlesizespread = 50, - particlespeed = 0.03, - particlespeedspread = 0, - pos = [[-10 r10, 1.0, -10 r10]], - sizegrowth = -0.2, - sizemod = 1.0, - texture = [[lightninginair]], + groundflash = { + circlealpha = 1, + circlegrowth = 0, + flashalpha = 0.17, + flashsize = 40, + ttl = 3, + color = { + [1] = 0.66, + [2] = 0.66, + [3] = 1, }, }, - }, - ["lightning_storm_emp2"] = { lightningballs = { air = true, class = [[CSimpleParticleSystem]], @@ -153,7 +123,7 @@ return { pos = [[-10 r10, 1.0, -10 r10]], sizegrowth = -0.2, sizemod = 1.0, - texture = [[lwhitelightb]], + texture = [[whitelightb]], }, }, }, diff --git a/effects/missiletrail.lua b/effects/missiletrail.lua index 20271369599..ffe35c9530c 100644 --- a/effects/missiletrail.lua +++ b/effects/missiletrail.lua @@ -1183,7 +1183,7 @@ local definitions = { sidetexture = [[muzzleside]], size = 3.8, sizegrowth = [[0.2 r0.3]], - ttl = 3, + ttl = 2, drawOrder = 2, }, }, diff --git a/effects/missiletrailcorroyspecial.lua b/effects/missiletrailcorroyspecial.lua index e80756adbc0..f22dafdd03d 100644 --- a/effects/missiletrailcorroyspecial.lua +++ b/effects/missiletrailcorroyspecial.lua @@ -91,14 +91,13 @@ return { emitrotspread = 0.1, emitvector = [[dir]], gravity = [[0.0, -0.02, 0.0]], - numparticles = [[2.6 r1]], - particlelife = 11, - particlelifespread = 22, + numparticles = [[1.2 r1]], + particlelife = 22, + particlelifespread = 45, particlesize = 2, particlesizespread = 4.5, particlespeed = 0.3, particlespeedspread = 0.6, - rotParams = [[-360 r720, -120 r240, -180 r360]], pos = [[-15 r30, -15 r30, -15 r30]], sizegrowth = 0.3, sizemod = 1, @@ -120,14 +119,13 @@ return { emitrotspread = 0.1, emitvector = [[dir]], gravity = [[0.0, -0.02, 0.0]], - numparticles = [[1.8 r1]], - particlelife = 11, - particlelifespread = 23, + numparticles = [[1.2 r1]], + particlelife = 22, + particlelifespread = 35, particlesize = 2, particlesizespread = 4.5, particlespeed = 0.4, particlespeedspread = 1.1, - rotParams = [[-360 r720, -120 r240, -180 r360]], pos = [[-15 r30, -15 r30, -15 r30]], sizegrowth = 0.3, sizemod = 1, diff --git a/effects/nukes.lua b/effects/nukes.lua index 07aa67b817a..3ab5ece77b1 100644 --- a/effects/nukes.lua +++ b/effects/nukes.lua @@ -1502,7 +1502,6 @@ definitions['newnuketac'].centerflare.properties.size = [[24 r4]] definitions['newnuketac'].centerflare.properties.heat = math.floor(definitions['newnuketac'].centerflare.properties.heat * size * 1.05) definitions['newnuketac'].centerflare.properties.maxheat = math.floor(definitions['newnuketac'].centerflare.properties.maxheat * size * 1.05) definitions['newnuketac'].groundflash_large.properties.size = math.floor(definitions['newnuketac'].groundflash_large.properties.size * size * 0.8) -definitions['newnuketac'].groundflash_large.properties.ttl = math.floor(definitions['newnuketac'].groundflash_large.properties.ttl * size * 0.6) definitions['newnuketac'].groundflash_white.properties.size = math.floor(definitions['newnuketac'].groundflash_white.properties.size * size * 0.8) definitions['newnuketac'].groundflash_white.properties.ttl = math.floor(definitions['newnuketac'].groundflash_white.properties.ttl * size * 0.4) definitions['newnuketac'].groundflash_quick.properties.size = math.floor(definitions['newnuketac'].groundflash_quick.properties.size * size * 0.8) diff --git a/fonts/fallbacks/NotoEmoji-VariableFont_wght.ttf b/fonts/fallbacks/NotoEmoji-VariableFont_wght.ttf new file mode 100644 index 00000000000..0731d6a875e Binary files /dev/null and b/fonts/fallbacks/NotoEmoji-VariableFont_wght.ttf differ diff --git a/fonts/fallbacks/OFL-Noto.txt b/fonts/fallbacks/OFL-Noto.txt new file mode 100644 index 00000000000..04e112f2250 --- /dev/null +++ b/fonts/fallbacks/OFL-Noto.txt @@ -0,0 +1,93 @@ +Copyright 2021 Google Inc. All Rights Reserved. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/SourceHanSans-Regular.ttc b/fonts/fallbacks/SourceHanSans-Regular.ttc similarity index 100% rename from fonts/SourceHanSans-Regular.ttc rename to fonts/fallbacks/SourceHanSans-Regular.ttc diff --git a/gamedata/alldefs_post.lua b/gamedata/alldefs_post.lua index 6c05ff82e16..eeb49196e9c 100644 --- a/gamedata/alldefs_post.lua +++ b/gamedata/alldefs_post.lua @@ -263,17 +263,21 @@ function UnitDef_Post(name, uDef) armamd = true, armsilo = true, armscab = true, + armseadragon = true, corfmd = true, corsilo = true, cormabm = true, + cordesolator = true, legsilo = true, legabm = true, armamd_scav = true, armsilo_scav = true, armscab_scav = true, + armseadragon_scav = true, corfmd_scav = true, corsilo_scav = true, cormabm_scav = true, + cordesolator_scav = true, legsilo_scav = true, legabm_scav = true, } @@ -328,14 +332,14 @@ function UnitDef_Post(name, uDef) uDef.buildoptions[numBuildoptions + 1] = "comeffigylvl1" end end - - if modOptions.evocom then + + if modOptions.evocom then if uDef.customparams.evocomlvl or name == "armcom" or name == "corcom" or name == "legcom" then local comLevel = uDef.customparams.evocomlvl if modOptions.comrespawn == "all" or modOptions.comrespawn == "evocom" then--add effigy respawning, if enabled uDef.customparams.respawn_condition = "health" - + local numBuildoptions = #uDef.buildoptions if comLevel == 2 then uDef.buildoptions[numBuildoptions + 1] = "comeffigylvl1" @@ -351,13 +355,13 @@ function UnitDef_Post(name, uDef) end uDef.customparams.combatradius = 0 uDef.customparams.evolution_health_transfer = "percentage" - + if uDef.power then uDef.power = uDef.power/modOptions.evocomxpmultiplier else uDef.power = ((uDef.metalcost+(uDef.energycost/60))/modOptions.evocomxpmultiplier) end - + if name == "armcom" then uDef.customparams.evolution_target = "armcomlvl2" uDef.customparams.inheritxpratemultiplier = 0.5 @@ -374,7 +378,7 @@ function UnitDef_Post(name, uDef) if modOptions.evocomlevelupmethod == "dynamic" then uDef.customparams.evolution_condition = "power" - uDef.customparams.evolution_power_multiplier = 1 -- Scales the power calculated based on your own combined power. + uDef.customparams.evolution_power_multiplier = 1 -- Scales the power calculated based on your own combined power. local evolutionPowerThreshold = uDef.customparams.evolution_power_threshold or 10000 --sets threshold for level 1 commanders uDef.customparams.evolution_power_threshold = evolutionPowerThreshold*modOptions.evocomlevelupmultiplier elseif modOptions.evocomlevelupmethod == "timed" then @@ -575,6 +579,7 @@ function UnitDef_Post(name, uDef) uDef.buildoptions[numBuildoptions + 6] = "armannit3" uDef.buildoptions[numBuildoptions + 7] = "armnanotct2" uDef.buildoptions[numBuildoptions + 8] = "armlwall" + uDef.buildoptions[numBuildoptions + 9] = "armgatet3" elseif name == "coraca" or name == "corack" or name == "coracv" then local numBuildoptions = #uDef.buildoptions uDef.buildoptions[numBuildoptions + 1] = "corapt3" @@ -584,6 +589,7 @@ function UnitDef_Post(name, uDef) uDef.buildoptions[numBuildoptions + 6] = "cordoomt3" uDef.buildoptions[numBuildoptions + 7] = "cornanotct2" uDef.buildoptions[numBuildoptions + 8] = "cormwall" + uDef.buildoptions[numBuildoptions + 9] = "corgatet3" elseif name == "legaca" or name == "legack" or name == "legacv" then local numBuildoptions = #uDef.buildoptions uDef.buildoptions[numBuildoptions + 1] = "legapt3" @@ -591,6 +597,7 @@ function UnitDef_Post(name, uDef) uDef.buildoptions[numBuildoptions + 3] = "legwint2" uDef.buildoptions[numBuildoptions + 4] = "legnanotct2" uDef.buildoptions[numBuildoptions + 5] = "legrwall" + uDef.buildoptions[numBuildoptions + 6] = "corgatet3" elseif name == "armasy" then local numBuildoptions = #uDef.buildoptions uDef.buildoptions[numBuildoptions + 1] = "armptt2" @@ -760,7 +767,7 @@ function UnitDef_Post(name, uDef) ---------------------------------------------------------------------- -- CATEGORY ASSIGNER ---------------------------------------------------------------------- - + -- uDef.movementclass lists local hoverList = { HOVER2 = true, @@ -768,7 +775,7 @@ function UnitDef_Post(name, uDef) HHOVER4 = true, HOVER5 = true } - + local shipList = { BOAT3 = true, BOAT4 = true, @@ -776,12 +783,12 @@ function UnitDef_Post(name, uDef) BOAT8 = true, EPICSHIP = true } - + local subList = { UBOAT4 = true, EPICSUBMARINE = true } - + local amphibList = { VBOT5 = true, COMMANDERBOT = true, @@ -798,12 +805,12 @@ function UnitDef_Post(name, uDef) COMMANDERBOT = true, SCAVCOMMANDERBOT = true } - + local categories = {} -- Manual categories: OBJECT T4AIR LIGHTAIRSCOUT GROUNDSCOUT RAPTOR -- Deprecated caregories: BOT TANK PHIB NOTLAND SPACE - + categories["ALL"] = function() return true end categories["MOBILE"] = function(uDef) return uDef.speed and uDef.speed > 0 end categories["NOTMOBILE"] = function(uDef) return not categories.MOBILE(uDef) end @@ -822,7 +829,7 @@ function UnitDef_Post(name, uDef) categories["MINE"] = function(uDef) return uDef.weapondefs and uDef.weapondefs.minerange end categories["COMMANDER"] = function(uDef) return commanderList[uDef.movementclass] end categories["EMPABLE"] = function(uDef) return categories.SURFACE(uDef) and uDef.customparams and uDef.customparams.paralyzemultiplier ~= 0 end - + uDef.category = uDef.category or "" if not string.find(uDef.category, "OBJECT") then -- objects should not be targetable and therefore are not assigned any other category for categoryName, condition in pairs(categories) do @@ -841,7 +848,7 @@ function UnitDef_Post(name, uDef) uDef.collide = false end end - + if uDef.metalcost and uDef.health and uDef.canmove == true and uDef.mass == nil then local healthmass = math.ceil(uDef.health/6) uDef.mass = math.max(uDef.metalcost, healthmass) @@ -885,12 +892,12 @@ function UnitDef_Post(name, uDef) uDef.weapondefs.stiletto_bomb.burstrate = 0.3333 uDef.weapondefs.stiletto_bomb.edgeeffectiveness = 0.30 uDef.weapondefs.stiletto_bomb.damage.default = 3000 - uDef.weapondefs.stiletto_bomb.paralyzetime = 1 + uDef.weapondefs.stiletto_bomb.paralyzetime = 1 end if name == "armspid" then - uDef.weapondefs.spider.paralyzetime = 2 - uDef.weapondefs.spider.damage.vtol = 100 + uDef.weapondefs.spider.paralyzetime = 2 + uDef.weapondefs.spider.damage.vtol = 100 uDef.weapondefs.spider.damage.default = 600 uDef.weapondefs.spider.reloadtime = 1.495 end @@ -942,10 +949,10 @@ function UnitDef_Post(name, uDef) uDef.weapondefs.empmissile.areaofeffect = 250 uDef.weapondefs.empmissile.edgeeffectiveness = -0.50 uDef.weapondefs.empmissile.damage.default = 20000 - uDef.weapondefs.empmissile.paralyzetime = 5 + uDef.weapondefs.empmissile.paralyzetime = 5 uDef.weapondefs.emp.damage.default = 200 uDef.weapondefs.emp.reloadtime = .5 - uDef.weapondefs.emp.paralyzetime = 1 + uDef.weapondefs.emp.paralyzetime = 1 end if name == "corbw" then @@ -956,9 +963,9 @@ function UnitDef_Post(name, uDef) --uDef.weapondefs.bladewing_lyzer.beamdecay = 0.5 --uDef.weapondefs.bladewing_lyzer.beamtime = 0.03 --uDef.weapondefs.bladewing_lyzer.beamttl = 0.4 - + uDef.weapondefs.bladewing_lyzer.damage.default = 300 - uDef.weapondefs.bladewing_lyzer.paralyzetime = 1 + uDef.weapondefs.bladewing_lyzer.paralyzetime = 1 end @@ -969,15 +976,15 @@ function UnitDef_Post(name, uDef) if (name == "armvulc" or name == "corbuzz" or name == "legstarfall" or name == "corsilo" or name == "armsilo") then uDef.customparams.paralyzemultiplier = 2 end - + --if name == "corsumo" then --uDef.customparams.paralyzemultiplier = 0.9 --end - + if name == "armmar" then uDef.customparams.paralyzemultiplier = 0.8 end - + if name == "armbanth" then uDef.customparams.paralyzemultiplier = 1.6 end @@ -988,19 +995,19 @@ function UnitDef_Post(name, uDef) --if name == "armvang" then --uDef.customparams.paralyzemultiplier = 1.1 --end - + --if name == "armlun" then --uDef.customparams.paralyzemultiplier = 1.05 --end - + --if name == "corshiva" then --uDef.customparams.paralyzemultiplier = 1.1 --end - + --if name == "corcat" then --uDef.customparams.paralyzemultiplier = 1.05 --end - + --if name == "corkarg" then --uDef.customparams.paralyzemultiplier = 1.2 --end @@ -1325,14 +1332,14 @@ function UnitDef_Post(name, uDef) end uDef.customparams.vertdisp = 1.0 * vertexDisplacement uDef.customparams.healthlookmod = 0 - + -- Animation Cleanup - if modOptions.animationcleanup then - if uDef.script then + if modOptions.animationcleanup then + if uDef.script then local oldscript = uDef.script:lower() - if oldscript:find(".cob", nil, true) and (not oldscript:find("_clean.", nil, true)) then + if oldscript:find(".cob", nil, true) and (not oldscript:find("_clean.", nil, true)) then local newscript = string.sub(oldscript, 1, -5) .. "_clean.cob" - if VFS.FileExists('scripts/'..newscript) then + if VFS.FileExists('scripts/'..newscript) then Spring.Echo("Using new script for", name, oldscript, '->', newscript) uDef.script = newscript else @@ -1341,7 +1348,7 @@ function UnitDef_Post(name, uDef) end end end - + end local function ProcessSoundDefaults(wd) @@ -1388,7 +1395,7 @@ function WeaponDef_Post(name, wDef) if not SaveDefsToCustomParams then -------------- EXPERIMENTAL MODOPTIONS - + -- Standard Gravity local gravityOverwriteExemptions = { --add the name of the weapons (or just the name of the unit followed by _ ) to this table to exempt from gravity standardization. 'cormship_', 'armmship_' @@ -1406,9 +1413,9 @@ function WeaponDef_Post(name, wDef) wDef.mygravity = 0.1445 end end - + -- Accurate Lasers - if modOptions.accuratelasers then + if modOptions.proposed_unit_reworks then if wDef.weapontype and wDef.weapontype == 'BeamLaser' then wDef.targetmoveerror = nil end @@ -1457,6 +1464,13 @@ function WeaponDef_Post(name, wDef) end]] ---- SHIELD CHANGES + + if wDef.weapontype == "DGun" then + wDef.interceptedbyshieldtype = 512 --make dgun (like behemoth) interceptable by shields, optionally + elseif wDef.weapontype == "StarburstLauncher" and not string.find(name, "raptor") then + wDef.interceptedbyshieldtype = 1024 --separate from combined MissileLauncher, except raptors + end + local shieldModOption = modOptions.experimentalshields if shieldModOption == "absorbplasma" then @@ -1479,16 +1493,21 @@ function WeaponDef_Post(name, wDef) end end + --Shields Rework if modOptions.shieldsrework == true then + -- To compensate for always taking full damage from projectiles in contrast to bounce-style only taking partial + local shieldRechargeRateMultiplier = 2.5 + local shieldRechargeCostMultiplier = 1 + -- For balance, paralyzers need to do reduced damage to shields, as their raw raw damage is outsized local paralyzerShieldDamageMultiplier = 0.25 -- VTOL's may or may not do full damage to shields if not defined in weapondefs local vtolShieldDamageMultiplier = 0 - local shieldCollisionExemptions = { --add the name of the weapons (or just the name of the unit followed by _ ) to this table to exempt from shield collision. - 'corsilo_', 'armsilo_', 'armthor_empmissile', 'armemp_', 'cortron_', 'corjuno_', 'armjuno_' - } + local shieldCollisionExemptions = { --add the name of the weapons (or just the name of the unit followed by _ ) to this table to exempt from shield collision. + 'corsilo_', 'armsilo_', 'armthor_empmissile', 'armemp_', 'cortron_', 'corjuno_', 'armjuno_', + } if wDef.damage ~= nil then -- Due to the engine not handling overkill damage, we have to store the original shield damage values as a customParam for unit_shield_behavior.lua to reference @@ -1519,25 +1538,28 @@ function WeaponDef_Post(name, wDef) end if wDef.shield then - wDef.shield.repulser = false wDef.shield.exterior = true + if wDef.shield.repulser == true then --isn't an evocom + wDef.shield.powerregen = wDef.shield.powerregen * shieldRechargeRateMultiplier + wDef.shield.powerregenenergy = wDef.shield.powerregenenergy * shieldRechargeCostMultiplier + end + wDef.shield.repulser = false end - wDef.interceptedbyshieldtype = 1 + if ((not wDef.interceptedbyshieldtype or wDef.interceptedbyshieldtype ~= 1) and wDef.weapontype ~= "Cannon") then + wDef.customparams = wDef.customparams or {} + wDef.customparams.shield_aoe_penetration = true + end for _, exemption in ipairs(shieldCollisionExemptions) do - if string.find(name, exemption)then - wDef.interceptedbyshieldtype = 2 + if string.find(name, exemption) then + wDef.interceptedbyshieldtype = 0 wDef.customparams.shield_aoe_penetration = true break end end end - if modOptions.evocom == true and wDef.weapontype == "DGun" then - wDef.interceptedbyshieldtype = 1 - end - if modOptions.multiplier_shieldpower then if wDef.shield then local multiplier = modOptions.multiplier_shieldpower diff --git a/gamedata/armordefs.lua b/gamedata/armordefs.lua index 1ed2597b3e3..f75098f10de 100644 --- a/gamedata/armordefs.lua +++ b/gamedata/armordefs.lua @@ -427,6 +427,8 @@ local armorDefs = { "legadvsol", "legrl", "legrhapsis", + "legsilo", + "legfus", "coruwgeo", "coruwageo", @@ -439,6 +441,8 @@ local armorDefs = { "legotter", "legacv", "legack", + "legavrad", + "legavjam", "legah", "legmh", @@ -448,6 +452,8 @@ local armorDefs = { "legfhp", "legch", "legeyes", + "legjav", + "legerailtank", }, mines = { "armfmine3", @@ -573,6 +579,7 @@ local armorDefs = { "legphoenix", "legstronghold", "legwhisper", + "legatorpbomber", "critter_gull", "armfify", }, diff --git a/gamedata/icontypes.lua b/gamedata/icontypes.lua index fa683f073d2..f431d780661 100644 --- a/gamedata/icontypes.lua +++ b/gamedata/icontypes.lua @@ -423,6 +423,10 @@ local icontypes = { bitmap = "icons/shield.png", size = 1.57499993 }, + armgatet3 = { + bitmap = "icons/shield.png", + size = 1.9425 + }, armgeo = { bitmap = "icons/energy6_1.3.png", size = 1.36499989 @@ -539,6 +543,10 @@ local icontypes = { bitmap = "icons/armmar_t3.png", size = 2 }, + legjav = { + bitmap = "icons/legjav.png", + size = 2.1 + }, armmark = { bitmap = "icons/bot_t2_radar.png", size = 1.34399986 @@ -663,10 +671,6 @@ local icontypes = { bitmap = "icons/ship.png", size = 1 }, - armptl = { - bitmap = "icons/defence_1_naval.png", - size = 1.10249984 - }, armptt2 = { bitmap = "icons/ship_t3_pt.png", size = 2.29999995 @@ -1103,6 +1107,14 @@ local icontypes = { bitmap = "icons/hazardous.png", size = 1.88999987 }, + legafus = { + bitmap = "icons/energy5_1.85.png", + size = 1.9425 + }, + legatorpbomber = { + bitmap = "icons/air_t2_torpbomber.png", + size = 1.67999995 + }, legrampart = { bitmap = "icons/legion_rampart.png", size = 1.88999987 @@ -1483,6 +1495,10 @@ local icontypes = { bitmap = "icons/shield.png", size = 1.57499993 }, + corgatet3 = { + bitmap = "icons/shield.png", + size = 1.9425 + }, corgator = { bitmap = "icons/vehicle_t1_raid.png", size = 0.89249998 @@ -1759,10 +1775,6 @@ local icontypes = { bitmap = "icons/ship.png", size = 1.14999998 }, - corptl = { - bitmap = "icons/defence_1_naval.png", - size = 1.10249984 - }, corpun = { bitmap = "icons/def_t1_arty.png", size = 1.36499989 @@ -1855,6 +1867,10 @@ local icontypes = { bitmap = "icons/vehicle_t2_aa_flak.png", size = 1.36499989 }, + legvflak = { + bitmap = "icons/vehicle_t2_aa_flak.png", + size = 1.36499989 + }, corsiegebreaker = { bitmap = "icons/vehicle_t2_tank_laser.png", size = 1.46999991 @@ -2203,6 +2219,14 @@ local icontypes = { bitmap = "icons/vehicle_t2_vroc.png", size = 1.62749982 }, + legavrad = { + bitmap = "icons/vehicle_t2_radar.png", + size = 1.36499989 + }, + legavjam = { + bitmap = "icons/vehicle_t2_jammer.png", + size = 1.36499989 + }, legaheattank = { bitmap = "icons/vehicle_t2_tank_heavylaser.png", size = 1.73749986 @@ -2319,6 +2343,10 @@ local icontypes = { bitmap = "icons/energystorage.png", size = 1.10249984 }, + legerailtank = { + bitmap = "icons/vehicle_t3_tank_rail_mgun.png", + size = 2.4000001 + }, legcv = { bitmap = "icons/vehicle_worker.png", size = 0.99749994 @@ -2588,7 +2616,7 @@ local icontypes = { size = 1.88999987 }, legphoenix = { - bitmap = "icons/air_t2_bomber.png", + bitmap = "icons/air_t2_laser.png", size = 1.74299991 }, legpontus = { @@ -2679,6 +2707,10 @@ local icontypes = { bitmap = "icons/metalmaker_t1.png", size = 0.78749996 }, + legfus = { + bitmap = "icons/fusion.png", + size = 1.46999991 + }, legtriarius = { bitmap = "icons/ship_destroyer.png", size = 1.51199996 diff --git a/gamedata/movedefs.lua b/gamedata/movedefs.lua index b0b6a2a2ddd..ea3f177b770 100644 --- a/gamedata/movedefs.lua +++ b/gamedata/movedefs.lua @@ -227,8 +227,8 @@ local moveDatas = { -- armthor HTANK5 = { crushstrength = 1400, - footprintx = 5, - footprintz = 5, + footprintx = 7, + footprintz = 7, maxslope = 22, slopeMod = 42, maxwaterdepth = 24, @@ -267,7 +267,7 @@ local moveDatas = { maxValue = 0.7, } }, - -- armfido leggstr + -- armfido leggstr corhrk BOT4 = { crushstrength = 25, footprintx = 3, @@ -312,8 +312,8 @@ local moveDatas = { HABOT4 = { crushstrength = 252, depthmod = 0, - footprintx = 4, - footprintz = 4, + footprintx = 5, + footprintz = 5, maxslope = 36, maxwaterdepth = 5000, maxwaterslope = 80, diff --git a/gamedata/scavengers/unitdef_changes.lua b/gamedata/scavengers/unitdef_changes.lua index d5275324db3..83cfb21a85d 100644 --- a/gamedata/scavengers/unitdef_changes.lua +++ b/gamedata/scavengers/unitdef_changes.lua @@ -96,7 +96,7 @@ customDefs.armjuno = { commandfire = true, customparams = { scavforcecommandfire = true, - stockpileLimit = 1, + stockpilelimit = 1, }, }, }, @@ -112,7 +112,7 @@ customDefs.corjuno = { commandfire = true, customparams = { scavforcecommandfire = true, - stockpileLimit = 1, + stockpilelimit = 1, }, }, }, diff --git a/gamedata/scavengers/unitdef_post.lua b/gamedata/scavengers/unitdef_post.lua index 7d3db036523..4ffedcc62d9 100644 --- a/gamedata/scavengers/unitdef_post.lua +++ b/gamedata/scavengers/unitdef_post.lua @@ -322,6 +322,7 @@ local function scavUnitDef_Post(name, uDef) uDef.buildoptions[numBuildoptions + 7] = "armnanotct2_scav" uDef.buildoptions[numBuildoptions + 8] = "armlwall_scav" uDef.buildoptions[numBuildoptions + 9] = "armshockwave_scav" + uDef.buildoptions[numBuildoptions + 10] = "armgatet3_scav" elseif name == "coraca_scav" or name == "corack_scav" or name == "coracv_scav" then local numBuildoptions = #uDef.buildoptions uDef.buildoptions[numBuildoptions + 1] = "corapt3_scav" @@ -331,6 +332,7 @@ local function scavUnitDef_Post(name, uDef) uDef.buildoptions[numBuildoptions + 6] = "cordoomt3_scav" uDef.buildoptions[numBuildoptions + 7] = "cornanotct2_scav" uDef.buildoptions[numBuildoptions + 8] = "cormwall_scav" + uDef.buildoptions[numBuildoptions + 9] = "corgatet3_scav" elseif name == "legaca_scav" or name == "legack_scav" or name == "legacv_scav" then local numBuildoptions = #uDef.buildoptions uDef.buildoptions[numBuildoptions + 1] = "legapt3_scav" @@ -338,6 +340,7 @@ local function scavUnitDef_Post(name, uDef) uDef.buildoptions[numBuildoptions + 3] = "legwint2_scav" uDef.buildoptions[numBuildoptions + 4] = "legnanotct2_scav" uDef.buildoptions[numBuildoptions + 5] = "legrwall_scav" + uDef.buildoptions[numBuildoptions + 6] = "corgatet3_scav" elseif name == "armasy_scav" then local numBuildoptions = #uDef.buildoptions uDef.buildoptions[numBuildoptions + 1] = "armptt2_scav" diff --git a/gamedata/unitDefRenames.lua b/gamedata/unitDefRenames.lua index a1f24d39219..ac41e658351 100644 --- a/gamedata/unitDefRenames.lua +++ b/gamedata/unitDefRenames.lua @@ -164,7 +164,6 @@ unitDefRenames = { armpship = "armada_ellysaw", armpshipt3 = "armada_epicellysaw", armpt = "armada_skater", - armptl = "armada_oldharpoon", armptt2 = "armada_epicskater", armpw = "armada_pawn", armpwt4 = "armada_epicpawn", @@ -399,7 +398,6 @@ unitDefRenames = { corvacct = "cortex_3printer", corpship = "cortex_riptide", corpt = "cortex_herring", - corptl = "cortex_oldurchin", corpun = "cortex_agitator", corpyro = "cortex_fiend", corrad = "cortex_radartower", diff --git a/icons/air_t2_laser.png b/icons/air_t2_laser.png new file mode 100644 index 00000000000..ffae07fdbc2 Binary files /dev/null and b/icons/air_t2_laser.png differ diff --git a/icons/inverted/air_t2_laser.png b/icons/inverted/air_t2_laser.png new file mode 100644 index 00000000000..c3171d17f48 Binary files /dev/null and b/icons/inverted/air_t2_laser.png differ diff --git a/icons/inverted/vehicle_t3_tank_rail_mgun.png b/icons/inverted/vehicle_t3_tank_rail_mgun.png new file mode 100644 index 00000000000..f87c903c786 Binary files /dev/null and b/icons/inverted/vehicle_t3_tank_rail_mgun.png differ diff --git a/icons/legjav.png b/icons/legjav.png new file mode 100644 index 00000000000..ea4462f01cc Binary files /dev/null and b/icons/legjav.png differ diff --git a/icons/vehicle_t3_tank_rail_mgun.png b/icons/vehicle_t3_tank_rail_mgun.png new file mode 100644 index 00000000000..76df4ded6b6 Binary files /dev/null and b/icons/vehicle_t3_tank_rail_mgun.png differ diff --git a/init.lua b/init.lua index 1df82255ddc..3c9cd863056 100644 --- a/init.lua +++ b/init.lua @@ -26,6 +26,11 @@ local commonFunctions = { LuaIntro = true, LuaUI = true, }, + + map = { + LuaRules = true, + LuaUI = true, + }, } if commonFunctions.spring[environment] then @@ -40,6 +45,11 @@ if commonFunctions.i18n[environment] then Spring.I18N = Spring.I18N or VFS.Include("modules/i18n/i18n.lua") end + +if commonFunctions.map[environment] then + Spring.Lava = VFS.Include("modules/lava.lua") +end + -- we don't want them to run these tests for end users -- uncomment this only when working on functions in `common/tablefunctions.lua` -- VFS.Include('common/tableFunctionsTests.lua') diff --git a/language/en/interface.json b/language/en/interface.json index bb5e02ffcab..f1b171048d2 100644 --- a/language/en/interface.json +++ b/language/en/interface.json @@ -585,7 +585,7 @@ "queenAngerWithGain": "Queen Hatch: %{anger}%% (+%{gain}%%/s)", "queenAngerWithTech": "Queen Hatch: %{anger}%% (Evolution: %{techAnger}%%)", "queenAngerBase": "Base: +%{value}%%/s", - "queenAngerAggression": "Aggression: +%{value}%%/s", + "queenAngerAggression": "Player Aggression: +%{value}%%/s", "queenAngerEco": "Economy: +%{value}%%/s", "queenETA": "Queen arrives in: %{time}.", "queenHealth": "Queen Health: %{health}%%", @@ -623,7 +623,7 @@ "bossAngerWithGain": "Boss Anger: %{anger}%% (+%{gain}%%/s)", "bossAngerWithTech": "Boss Anger: %{anger}%% (Tech: %{techAnger}%%)", "bossAngerBase": "Base: +%{value}%%/s", - "bossAngerAggression": "Aggression: +%{value}%%/s", + "bossAngerAggression": "Player Aggression: +%{value}%%/s", "bossAngerEco": "Economy: +%{value}%%/s", "bossETA": "Boss arrives in: %{time}.", "bossHealth": "Boss Health: %{health}%%", @@ -892,7 +892,11 @@ "eneededforconversion": "E needed for conversion", "convertedm": "converted M", "estorage": "E storage", - "mstorage": "M storage" + "mstorage": "M storage", + "shieldcapacity": "Shield capacity", + "shieldrange": "Shield range", + "shieldrechargerate": "Recharge rate", + "shieldrechargecost": "Recharge cost" }, "spectator_hud": { "metalIncome_title": "Metal Income", @@ -1077,8 +1081,6 @@ "lighteffects_brightness_descr": "Set the brightness of the lights", "lighteffects_radius": "radius", "lighteffects_radius_descr": "Set the radius of the lights\n\nWARNING: the bigger the radius, the heavier on the GPU", - "lighteffects_screenspaceshadows": "shadow detail", - "lighteffects_screenspaceshadows_descr": "Set the detail level for additional lights shadowing. 0 is off.\n\nWARNING: more samples are heavier on the GPU", "lighteffects_headlights": "headlights", "lighteffects_headlights_descr": "Adds headlights to units", "lighteffects_buildlights": "construction lights", @@ -1180,6 +1182,9 @@ "camera": "Camera", "camerashake": "shake", "camerashake_descr": "Set the amount of camerashake on explosions", + "smoothingmode": "Smoothing Mode", + "smoothing_exponential": "Exponential Decay", + "smoothing_spring": "Spring Dampened", "camerasmoothing": "smoothing", "camerasmoothness": "smoothness", "camerasmoothness_descr": "How smooth should the transitions between camera movement be?", diff --git a/language/en/units.json b/language/en/units.json index c0e62235cc9..e1ce32ef652 100644 --- a/language/en/units.json +++ b/language/en/units.json @@ -131,6 +131,7 @@ "armfrt": "Naval Nettle", "armfus": "Fusion Reactor", "armgate": "Keeper", + "armgatet3": "Asylum", "armgeo": "Geothermal Powerplant", "armuwgeo": "Geothermal Powerplant", "armgmm": "Prude", @@ -190,7 +191,6 @@ "armpship": "Ellysaw", "armpshipt3": "Epic Ellysaw", "armpt": "Skater", - "armptl": "Harpoon", "armptt2": "Epic Skater", "armpw": "Pawn", "armpwt4": "Epic Pawn", @@ -486,6 +486,7 @@ "corgantuw": "Experimental Gantry", "corgarp": "Garpike", "corgate": "Overseer", + "corgatet3": "Sanctuary", "corgator": "Incisor", "corgatreap": "Laser Tiger", "corgeo": "Geothermal Powerplant", @@ -551,7 +552,6 @@ "corvac": "Printer", "corpship": "Riptide", "corpt": "Herring", - "corptl": "Urchin", "corpun": "Agitator", "corpyro": "Fiend", "corrad": "Radar Tower", @@ -660,6 +660,7 @@ "legacluster": "Eviscerator", "legamcluster": "Cleaver", "legalab": "Legion Advanced Bot Lab", + "legatorpbomber": "Aesacus", "legah": "Alpheus", "legap": "Legion Drone Plant", "legaap": "Legion Advanced Aircraft Plant", @@ -714,14 +715,18 @@ "legheavydrone": "Legion Heavy Drone", "legdtr": "Dragon's Jaw", "legeconv": "Energy Converter", + "legerailtank": "Daedalus", "legfhp": "Naval Hovercraft Platform", "legfig": "Noctua", "legfhive": "Hive", "legfmkr": "Naval Energy Converter", - "legflak": "Ravager", + "legflak": "Pluto", + "legvflak": "Charon", "legfloat": "Triton", "legfort": "Tyrannus", "legfortt4": "Epic Tyrannus", + "legafus": "Advanced Fusion Reactor", + "legfus": "Fusion Reactor", "legapt3": "Experimental Aircraft Gantry", "leggant": "Experimental Gantry", "leggat": "Decurion", @@ -781,6 +786,8 @@ "legsolar": "Solar Collector", "legaskirmtank": "Gladiator", "legavroc": "Boreas", + "legavjam": "Cicero", + "legavrad": "Pheme", "legaheattank": "Prometheus", "legshot": "Phalanx", "legsrail": "Arquebus", @@ -797,7 +804,7 @@ "legvenator": "Venator", "legvision": "Vision", "legvelite": "Velite", - "legvp": "Legion Vehicle Lab", + "legvp": "Legion Vehicle Plant", "legwhisper": "Whisper", "legwin": "Wind Turbine", "legwint2": "Tech 2 Wind Turbine", @@ -862,7 +869,8 @@ "legnanotcbase": "Base Builder", "legrampart": "Rampart", "legabm": "Aegis", - "legrwall": "Dragon's Constitution" + "legrwall": "Dragon's Constitution", + "legjav": "Javelin" }, "descriptions": { "armaak": "Advanced Amphibious Anti-Air Bot", @@ -983,6 +991,7 @@ "armfrt": "Floating Anti-air Tower", "armfus": "Produces 1000 Energy", "armgate": "Plasma Deflector", + "armgatet3": "Intercepts small weaponry energy signatures of familiar types", "armgeo": "Produces 300 Energy", "armuwgeo": "Produces 300 Energy", "armgmm": "Safe Geothermal Powerplant, produces 750 Energy", @@ -1043,7 +1052,6 @@ "armpship": "Assault Frigate", "armpshipt3": "Quad Gatling Hyper-Laser Assault Ship", "armpt": "Stealthy Patrol Boat / Light Anti Air / Sonar", - "armptl": "Pop-up Torpedo Launcher", "armptt2": "Anti-Sub and Anti-Air Support Ship", "armpw": "Fast Infantry Bot", "armpwt4": "Holy #### it's huge Pawn!", @@ -1309,6 +1317,7 @@ "corerad": "Bomb-Resistant Medium-Range Anti-Air Missile Battery", "corestor": "Increases Energy Storage (6000)", "legestor": "Increases Energy Storage (6000)", + "legerailtank": "Experimental Kinetic Weapons Platform", "coresupp": "Light Gun Boat", "coresuppt3": "Super Heavy Assault Corvette", "coreter": "Radar Jammer Vehicle", @@ -1340,6 +1349,7 @@ "corgantuw": "Produces Large Amphibious Units", "corgarp": "Light Amphibious Tank", "corgate": "Plasma Deflector", + "corgatet3": "Intercepts small weaponry energy signatures of familiar types", "corgator": "Light Tank", "corgatreap": "Heavy Assault Tank", "corgeo": "Produces 300 Energy", @@ -1405,7 +1415,6 @@ "corvac": "Armored Field Engineer. 200 BP and +25 E. Can repair/reclaim while moving", "corpship": "Assault Frigate", "corpt": "Missile Corvette / Light Anti Air / Sonar", - "corptl": "Pop-up Torpedo Launcher", "corpun": "Area Control Plasma Artillery", "corpyro": "Fast Assault Bot", "corrad": "Early Warning System", @@ -1514,6 +1523,7 @@ "legacluster": "Pop-up Cluster Plasma Artillery", "legamcluster": "Mobile Cluster Artillery Vehicle", "legalab": "Advanced Bot Lab", + "legatorpbomber": "Torpedo Bomber", "legah": "Anti-Air Hovercraft", "legap": "Drone Plant", "legaap": "Advanced Aircraft Plant", @@ -1569,9 +1579,12 @@ "legfhp": "Builds Hovercraft", "legfig": "Fighter / Scout Drone", "legfloat": "Heavy Convertible Tank/Boat", - "legflak": "Anti-Air Gatling Gun", + "legflak": "Anti-Air Minigun", + "legvflak": "Anti-Air Minigun Truck", "legfort": "Flying Fortress", "legfortt4": "Gigantic Flying Fortress", + "legafus": "Produces 3000 Energy (Hazardous)", + "legfus": "Produces 1000 Energy", "legapt3": "Produces Experimental Units", "leggant": "Produces Experimental Units", "leggat": "Armored Assault Tank", @@ -1636,6 +1649,8 @@ "legaheattank": "Heavy Assault Heatray Tank", "legaskirmtank": "Medium Burst-Fire Skirmisher Tank", "legavroc": "Stealthy Mobile Rocket Launcher", + "legavjam": "Radar Jammer Vehicle", + "legavrad": "Radar Vehicle", "legshot": "Shielded Assault Bot", "legsrail": "All-Terrain Heavy Railgun", "legsrailt4": "All-Terrain Heavy Railgun", @@ -1651,7 +1666,7 @@ "legvenator": "Fast High Damage Interceptor", "legvision": "Provides Temporary Vision", "legvelite": "Light Corvette", - "legvp": "Vehicle Lab", + "legvp": "Produces Tech 1 Vehicles", "legwhisper": "Radar / Sonar Plane", "legwin": "Produces Energy. Depends on wind strength.", "legwint2": "Produces Energy. Depends on wind strength.", @@ -1719,7 +1734,8 @@ "legnanotcbase": "Assist & Repair in massive radius", "legrampart": "Geothermal Antinuke, Jammer, Radar and Drone Platform", "legabm": "Anti-Nuke System", - "legrwall": "Railgun Defense Wall" + "legrwall": "Railgun Defense Wall", + "legjav": "Amphibious Raider" } } } diff --git a/language/test_unicode.lua b/language/test_unicode.lua index a7a0b8dc44b..5ee86aba57b 100644 --- a/language/test_unicode.lua +++ b/language/test_unicode.lua @@ -939,7 +939,6 @@ return { armpshipt3 = "Epic Ellysaw", armpt = "Skeeter", armptt2 = "Epic Skeeter", - armptl = "Harpoon", armpw = "KR하십시오에나무문", armpwt4 = "Epic Peewee", armrad = "Radar Tower", @@ -1194,7 +1193,6 @@ return { corplat = "Seaplane Platform", corpship = "Era", corpt = "Searcher", - corptl = "Urchin", corpun = "Punisher", corpyro = "Pyro", corrad = "Radar Tower", @@ -1489,7 +1487,6 @@ return { armpshipt3 = "Quad Gatling Hyper-Laser Assault Ship", armpt = "Stealthy Patrol Boat/Light Anti Air/Sonar", armptt2 = "Anti-Sub and Anti-Air Support Ship", - armptl = "Pop-up Torpedo Launcher", armpw = "Fast Infantry Bot", armpwt4 = "Holy #### it's huge Peewee!", armrad = "Early Warning System", @@ -1750,7 +1747,6 @@ return { corplat = "Builds Seaplanes", corpship = "Assault Frigate", corpt = "Missile Corvette/Light Anti Air/Sonar", - corptl = "Pop-up Torpedo Launcher", corpun = "Medium Plasma Artillery", corpyro = "Fast Assault Bot", corrad = "Early Warning System", diff --git a/luaintro/springconfig.lua b/luaintro/springconfig.lua index 2a19905fb1e..921dd956fd3 100644 --- a/luaintro/springconfig.lua +++ b/luaintro/springconfig.lua @@ -153,6 +153,23 @@ if Spring.GetConfigInt("version", 0) < version then Spring.SetConfigFloat("ui_scale", 0.94) end end +version = 5 +if Spring.GetConfigInt("version", 0) < version then + Spring.SetConfigInt("version", version) + + Spring.SetConfigInt("CamSpringMinZoomDistance", 300) + Spring.SetConfigInt("OverheadMinZoomDistance", 300) +end + + +-- apply the old pre-engine implementation stored camera minimum zoom level +local oldMinCamHeight = Spring.GetConfigInt("MinimumCameraHeight", -1) +if oldMinCamHeight ~= -1 then + Spring.SetConfigInt("MinimumCameraHeight", -1) + Spring.SetConfigInt("CamSpringMinZoomDistance", oldMinCamHeight) + Spring.SetConfigInt("OverheadMinZoomDistance", oldMinCamHeight) +end + Spring.SetConfigInt("VSync", Spring.GetConfigInt("VSyncGame", -1)) @@ -176,6 +193,7 @@ else Spring.SetConfigInt("KeyChainTimeout", userKeyChainTimeout) end + -- The default mouse drag threshold is set extremely low for engine by default, and fast clicking often results in a drag. -- This is bad for single unit commands, which turn into empty area commmands as a result of the small drag local xresolution = math.max(Spring.GetConfigInt("XResolution", 1920), Spring.GetConfigInt("XResolutionWindowed", 1920)) diff --git a/luarules/configs/BARb/stable/config/build_chain.json b/luarules/configs/BARb/stable/config/build_chain.json index b6df482d96a..0ca3dcb93f0 100644 --- a/luarules/configs/BARb/stable/config/build_chain.json +++ b/luarules/configs/BARb/stable/config/build_chain.json @@ -4,10 +4,10 @@ "unit": { // 0 1 2 3 4 5 6 7 8 9 "armada": ["armllt", "armtl", "armrl", "armbeamer", "armhlt", "armclaw", "armcir", "armferret", "armpb", "armatl", - "armflak", "armamb", "armanni", "armguard", "armamd", "armtarg", "armgate", "armptl"], + "armflak", "armamb", "armanni", "armguard", "armamd", "armtarg", "armgate"], // 0 1 2 3 4 5 6 7 8 9 "cortex": ["corllt", "cortl", "corrl", "corhllt", "corhlt", "cormaw", "cormadsam", "corerad", "corvipe", "coratl", - "corflak", "cortoast", "cordoom", "corpun", "corfmd", "cortarg", "corgate", "corptl"] + "corflak", "cortoast", "cordoom", "corpun", "corfmd", "cortarg", "corgate"] }, // Actual number of defences per cluster bounded by income - the order of defenses that should be build with numbers as above. "land": [0, 2, 3, 5, 6, 4, 7, 13, 8, 10, 11, 12], diff --git a/luarules/configs/BARb/stable/config/hard_aggressive/build_chain.json b/luarules/configs/BARb/stable/config/hard_aggressive/build_chain.json index 15e14d52abf..11de37e031d 100644 --- a/luarules/configs/BARb/stable/config/hard_aggressive/build_chain.json +++ b/luarules/configs/BARb/stable/config/hard_aggressive/build_chain.json @@ -4,10 +4,10 @@ "unit": { // 0 1 2 3 4 5 6 7 8 9 "armada": ["armllt", "armtl", "armrl", "armbeamer", "armhlt", "armclaw", "armcir", "armferret", "armpb", "armatl", - "armflak", "armamb", "armanni", "armguard", "armamd", "armtarg", "armgate", "armptl"], + "armflak", "armamb", "armanni", "armguard", "armamd", "armtarg", "armgate"], // 0 1 2 3 4 5 6 7 8 9 "cortex": ["corllt", "cortl", "corrl", "corhllt", "corhlt", "cormaw", "cormadsam", "corerad", "corvipe", "coratl", - "corflak", "cortoast", "cordoom", "corpun", "corfmd", "cortarg", "corgate", "corptl"] + "corflak", "cortoast", "cordoom", "corpun", "corfmd", "cortarg", "corgate"] }, // Actual number of defences per cluster bounded by income - the order of defenses that should be build with numbers as above. "land": [0, 2, 3, 5, 6, 4, 7, 13, 8, 10, 11, 12], diff --git a/luarules/configs/BARb/stable/config/medium/build_chain.json b/luarules/configs/BARb/stable/config/medium/build_chain.json index 992b0abe6df..294b44cc72a 100644 --- a/luarules/configs/BARb/stable/config/medium/build_chain.json +++ b/luarules/configs/BARb/stable/config/medium/build_chain.json @@ -4,10 +4,10 @@ "unit": { // 0 1 2 3 4 5 6 7 8 9 "armada": ["armllt", "armtl", "armrl", "armbeamer", "armhlt", "armclaw", "armcir", "armferret", "armpb", "armatl", - "armflak", "armamb", "armanni", "armguard", "armamd", "armtarg", "armgate", "armptl"], + "armflak", "armamb", "armanni", "armguard", "armamd", "armtarg", "armgate"], // 0 1 2 3 4 5 6 7 8 9 "cortex": ["corllt", "cortl", "corrl", "corhllt", "corhlt", "cormaw", "cormadsam", "corerad", "corvipe", "coratl", - "corflak", "cortoast", "cordoom", "corpun", "corfmd", "cortarg", "corgate", "corptl"] + "corflak", "cortoast", "cordoom", "corpun", "corfmd", "cortarg", "corgate"] }, // Actual number of defences per cluster bounded by income - the order of defenses that should be build with numbers as above. "land": [0, 0, 2, 3, 4, 7, 13, 7, 8, 10, 11, 12], diff --git a/luarules/configs/collisionvolumes.lua b/luarules/configs/collisionvolumes.lua index 74dd74bb501..6376e12be8a 100644 --- a/luarules/configs/collisionvolumes.lua +++ b/luarules/configs/collisionvolumes.lua @@ -200,6 +200,11 @@ pieceCollisionVolume['legsrail'] = { ['0']={55,24,55,0,12,0,1,1}, ['7']={12,12,60,0,3,9,1,2}, } +pieceCollisionVolume['legerailtank'] = { + ['0']={65,28.3,90.6, 0,1,-10, 2,1}, + ['10']={31,21,36, 0,6.4,2.3, 2,1}, + --['10']={50,50,50,0,0,0,2,1}, +} ---pieceCollisionVolume['legsrailt4'] = { --- ['0']={121,53,121,0,26,0,2,2}, --- ['7']={26,26,132,0,7,20,2,4}, @@ -304,8 +309,8 @@ pieceCollisionVolume['corsnap'] = { ['3']={12,10,12,0,0,0,2,1}, } pieceCollisionVolume['corsumo'] = { - ['0']={38,34,36,0,0,0,2,1}, - ['2']={24,16,25,0,0,0,2,1}, + ['0']={42,32,45,0,0,0,2,1}, + ['2']={22,10,22,0,0,0,1,1}, } pieceCollisionVolume['armfboy'] = { ['0']={34,40,42,0,-5,0,2,1}, diff --git a/luarules/configs/gui_soundeffects.lua b/luarules/configs/gui_soundeffects.lua index 94d1d3b9dc4..2a730c81cd8 100644 --- a/luarules/configs/gui_soundeffects.lua +++ b/luarules/configs/gui_soundeffects.lua @@ -273,12 +273,6 @@ GUIUnitSoundEffects = { BaseSoundWeaponType = "torpedo-small", }, - armptl = { - BaseSoundSelectType = "arm-bld-defense-action-water-t1", - --BaseSoundMovementType = "", - BaseSoundWeaponType = "torpedo-small", - }, - armdl = { BaseSoundSelectType = "arm-bld-defense-action-t1", --BaseSoundMovementType = "", @@ -533,6 +527,12 @@ GUIUnitSoundEffects = { BaseSoundWeaponType = "arm-bld-shield", }, + armgatet3 = { + BaseSoundSelectType = "arm-bld-defense-action-t2", + --BaseSoundMovementType = "", + BaseSoundWeaponType = "arm-bld-shield", + }, + armfgate = { BaseSoundSelectType = "arm-bld-defense-action-water-t2", --BaseSoundMovementType = "", @@ -1507,12 +1507,6 @@ GUIUnitSoundEffects = { BaseSoundWeaponType = "torpedo-small", }, - corptl = { - BaseSoundSelectType = "arm-bld-defense-action-water-t1", - --BaseSoundMovementType = "", - BaseSoundWeaponType = "torpedo-small", - }, - cordl = { BaseSoundSelectType = "arm-bld-defense-action-t1", --BaseSoundMovementType = "", @@ -1760,6 +1754,12 @@ GUIUnitSoundEffects = { BaseSoundWeaponType = "arm-bld-shield", }, + corgatet3 = { + BaseSoundSelectType = "arm-bld-defense-action-t2", + --BaseSoundMovementType = "", + BaseSoundWeaponType = "arm-bld-shield", + }, + corfgate = { BaseSoundSelectType = "arm-bld-defense-action-water-t2", --BaseSoundMovementType = "", @@ -2252,7 +2252,7 @@ GUIUnitSoundEffects = { BaseSoundSelectType = "cor-tnk-medium-amph-sel", BaseSoundMovementType = "cor-tnk-medium-amph-ok", BaseSoundWeaponType = "cloak", - }, + }, -- FUN MODE - made possible by Teifion and Basic -- corfav = { -- BaseSoundSelectType = "cor-veh-tiny-sel", @@ -2502,22 +2502,22 @@ GUIUnitSoundEffects = { BaseSoundSelectType = "cor-com-sel", BaseSoundMovementType = { "cor-com-ok-1", "cor-com-ok-2", "cor-com-ok-3", "cor-com-ok-4", }, BaseSoundWeaponType = "fastemg-small", - }, + }, legdecomlvl3 = { BaseSoundSelectType = "cor-com-sel", BaseSoundMovementType = { "cor-com-ok-1", "cor-com-ok-2", "cor-com-ok-3", "cor-com-ok-4", }, BaseSoundWeaponType = "fastemg-small", - }, + }, legdecomlvl6 = { BaseSoundSelectType = "cor-com-sel", BaseSoundMovementType = { "cor-com-ok-1", "cor-com-ok-2", "cor-com-ok-3", "cor-com-ok-4", }, BaseSoundWeaponType = "fastemg-small", - }, + }, legdecomlvl10 = { BaseSoundSelectType = "cor-com-sel", BaseSoundMovementType = { "cor-com-ok-1", "cor-com-ok-2", "cor-com-ok-3", "cor-com-ok-4", }, BaseSoundWeaponType = "fastemg-small", - }, + }, legcom = { BaseSoundSelectType = "cor-com-sel", BaseSoundMovementType = { "cor-com-ok-1", "cor-com-ok-2", "cor-com-ok-3", "cor-com-ok-4", }, @@ -2609,7 +2609,7 @@ GUIUnitSoundEffects = { --BaseSoundMovementType = "", BaseSoundWeaponType = "conalt-medium", }, - + legnanotcplat = { BaseSoundSelectType = "arm-bld-select-small-water", --BaseSoundMovementType = "", @@ -2675,11 +2675,6 @@ GUIUnitSoundEffects = { --BaseSoundMovementType = "", BaseSoundWeaponType = "torpedo-small", }, - legptl = { - BaseSoundSelectType = "arm-bld-defense-action-water-t1", - --BaseSoundMovementType = "", - BaseSoundWeaponType = "torpedo-small", - }, legrhapsis = { BaseSoundSelectType = "arm-bld-defense-action-t1", BaseSoundWeaponType = "aarocket-medium", @@ -2758,17 +2753,17 @@ GUIUnitSoundEffects = { --BaseSoundMovementType = "", BaseSoundWeaponType = "arm-bld-lolcannon", }, - + legperdition = { BaseSoundSelectType = "arm-bld-defense-action-t2", --BaseSoundMovementType = "", BaseSoundWeaponType = "rocketalt-large", - }, + }, legbombard = { BaseSoundSelectType = "arm-bld-defense-action-t2", --BaseSoundMovementType = "", BaseSoundWeaponType = "plasma-large-alt", - }, + }, legbastion = { BaseSoundSelectType = "arm-bld-defense-action-t3", @@ -2961,7 +2956,7 @@ GUIUnitSoundEffects = { BaseSoundMovementType = "cor-bot-tiny-ok", BaseSoundWeaponType = "bomb", }, - + -- LEGION T3 BOTS legpede = { BaseSoundSelectType = "cor-bot-t3-at-sel", @@ -2983,6 +2978,11 @@ GUIUnitSoundEffects = { BaseSoundMovementType = "cor-bot-large-ok", BaseSoundWeaponType = "plasma-large", }, + legjav = { + BaseSoundSelectType = "arm-bot-huge-sel", + BaseSoundMovementType = "arm-bot-huge-ok", + BaseSoundWeaponType = "fastemg-medium", + }, -- LEGION T1 VEHICLES legcv = { @@ -2994,7 +2994,7 @@ GUIUnitSoundEffects = { BaseSoundSelectType = "cor-tnk-small-amph-sel", BaseSoundMovementType = "cor-tnk-small-amph-ok", BaseSoundWeaponType = "conalt-small", - }, + }, leghelios = { BaseSoundSelectType = "leg-veh-small-sel", BaseSoundMovementType = "leg-veh-small-ok", @@ -3035,7 +3035,7 @@ GUIUnitSoundEffects = { BaseSoundMovementType = "arm-tnk-small-amph-ok", BaseSoundWeaponType = "plasma-small", }, - + -- LEGION T2 VEHICLES legacv = { BaseSoundSelectType = "cor-tnk-small-sel", @@ -3082,13 +3082,18 @@ GUIUnitSoundEffects = { BaseSoundMovementType = "cor-tnk-medium-ok", BaseSoundWeaponType = "arty-large", }, + legvflak = { + BaseSoundSelectType = "leg-veh-small-sel", + BaseSoundMovementType = "leg-veh-small-ok", + BaseSoundWeaponType = "flak", + }, legaskirmtank = { BaseSoundSelectType = "cor-tnk-medium-sel", BaseSoundMovementType = "cor-tnk-medium-ok", BaseSoundWeaponType = "plasma-medium-alt", }, - - + + -- LEGION T3 VEHICLES @@ -3200,8 +3205,8 @@ GUIUnitSoundEffects = { BaseSoundActivate = "mohorun1", BaseSoundDeactivate = "mohooff1", }, - - + + -- LEGION HOVERCRAFT legsh = { diff --git a/luarules/configs/icon_generator.lua b/luarules/configs/icon_generator.lua index a8b0b579fc1..94b21f979d5 100644 --- a/luarules/configs/icon_generator.lua +++ b/luarules/configs/icon_generator.lua @@ -225,18 +225,12 @@ unitConfigs = { [UnitDefNames.armferret.id] = { unfold = false, }, - [UnitDefNames.armptl.id] = { - unfold = false, - }, [UnitDefNames.corcs.id] = { unfold = false, }, [UnitDefNames.corfmd.id] = { unfold = false, }, - [UnitDefNames.corptl.id] = { - unfold = false, - }, [UnitDefNames.corsilo.id] = { unfold = false, }, diff --git a/luarules/configs/lavaConfig.lua b/luarules/configs/lavaConfig.lua deleted file mode 100644 index aebab539b56..00000000000 --- a/luarules/configs/lavaConfig.lua +++ /dev/null @@ -1,471 +0,0 @@ -local mapName = Game.mapName:lower() -Spring.Echo("Lava Mapname", mapName) -lavaMap = false - --- defaults: -nolavaburstcegs = false -lavaDiffuseEmitTex = "LuaUI/images/lava/lava2_diffuseemit.dds" -lavaNormalHeightTex = "LuaUI/images/lava/lava2_normalheight.dds" - -lavaLevel = 1 -- pre-game lava level -lavaGrow = 0.25 -- initial lavaGrow speed -lavaDamage = 100 -- damage per second -lavaUVscale = 2.0 -- How many times to tile the lava texture across the entire map -lavaColorCorrection = "vec3(1.0, 1.0, 1.0)" -- final colorcorrection on all lava + shore coloring -lavaLOSdarkness = 0.5 -- how much to darken the out-of-los areas of the lava plane -lavaSwirlFreq = 0.025 -- How fast the main lava texture swirls around default 0.025 -lavaSwirlAmp = 0.003 -- How much the main lava texture is swirled around default 0.003 -lavaSpecularExp = 64.0 -- the specular exponent of the lava plane -lavaShadowStrength = 0.4 -- how much light a shadowed fragment can recieve -lavaCoastWidth = 25.0 -- how wide the coast of the lava should be -lavaCoastColor = "vec3(2.0, 0.5, 0.0)" -- the color of the lava coast -lavaCoastLightBoost = 0.6 -- how much extra brightness should coastal areas get - -lavaParallaxDepth = 16.0 -- set to >0 to enable, how deep the parallax effect is -lavaParallaxOffset = 0.5 -- center of the parallax plane, from 0.0 (up) to 1.0 (down) - -lavaFogColor = "vec3(2.0, 0.5, 0.0)" -- the color of the fog light -lavaFogFactor = 0.06 -- how dense the fog is -lavaFogHeight = 20 -- how high the fog is above the lava plane -lavaFogAbove = 1.0 -- the multiplier for how much fog should be above lava fragments, ~0.2 means the lava itself gets hardly any fog, while 2.0 would mean the lava gets a lot of extra fog -lavaFogEnabled = true --if fog above lava adds light / is enabled -lavaFogDistortion = 4.0 -- lower numbers are higher distortion amounts - -lavaTideamplitude = 2 -- how much lava should rise up-down on static level -lavaTideperiod = 200 -- how much time between live rise up-down - - ---[[ EXAMPLE - -addTideRhym(HeightLevel, Speed, Delay for next TideRhym in seconds) - -if string.find(mapName, "quicksilver") then - lavaMap = true - lavaMinHeight = 137 -- minheight of map smf - otherwise will use 0 - lavaLevel = 220 - lavaGrow = 0.25 - lavaDamage = 100 - if (gadgetHandler:IsSyncedCode()) then - addTideRhym (-21, 0.25, 5*10) - addTideRhym (150, 0.25, 3) - addTideRhym (-20, 0.25, 5*10) - addTideRhym (150, 0.25, 5) - addTideRhym (-20, 1, 5*60) - addTideRhym (180, 0.5, 60) - addTideRhym (240, 0.2, 10) - end -end - -]] - -if string.find(mapName, "stronghold") then - lavaMap = true - lavaLevel = 20 - lavaGrow = 0 - - lavaDamage = 25 -- damage per second - lavaTideamplitude = 3 - lavaTideperiod = 95 - lavaDiffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds" - lavaNormalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds" - lavaLOSdarkness = 0.7 - lavaColorCorrection = "vec3(1.1, 1.0, 0.88)" - lavaShadowStrength = 1.0 -- how much light a shadowed fragment can recieve - lavaCoastColor = "vec3(2.2, 0.4, 0.0)" - lavaCoastLightBoost = 0.7 - lavaCoastWidth = 36.0 - lavaFogFactor = 0.08 -- how dense the fog is - lavaFogColor = "vec3(2.0, 0.31, 0.0)" - lavaFogHeight = 85 - lavaFogAbove = 0.18 - lavaUVscale = 0.5 - lavaSwirlFreq = 0.017 - lavaSwirlAmp = 0.0024 - - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (19, 0.3, 5*6000) - end - -elseif string.find(mapName, "incandescence") then - lavaMap = true - lavaLevel = 207 - lavaDamage = 150 -- damage per second - lavaTideamplitude = 3 - lavaTideperiod = 95 - lavaDiffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds" - lavaNormalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds" - lavaLOSdarkness = 0.7 - lavaColorCorrection = "vec3(1.1, 1.0, 0.88)" - lavaShadowStrength = 1.0 -- how much light a shadowed fragment can recieve - lavaCoastColor = "vec3(2.2, 0.4, 0.0)" - lavaCoastLightBoost = 0.7 - lavaCoastWidth = 36.0 - lavaFogFactor = 0.08 -- how dense the fog is - lavaFogColor = "vec3(2.0, 0.31, 0.0)" - lavaFogHeight = 85 - lavaFogAbove = 0.18 - - - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (206, 0.25, 5*6000) -- needs to be -1 than pre-game lava level - end - -elseif string.find(mapName, "seths ravine") then - lavaMap = false - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (208, 0.25, 5*6000) -- needs to be -1 than pre-game lava level - end - -elseif string.find(mapName, "moonq20xr2") then - lavaMap = false - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (208, 0.25, 5*6000) -- needs to be -1 than pre-game lava level - end - -elseif string.find(mapName, "ghenna") then - lavaMap = true - lavaLevel = 251 -- pre-game lava level - lavaDamage = 750 -- damage per second - lavaColorCorrection = "vec3(0.7, 0.7, 0.7)" - lavaSwirlFreq = 0.017 - lavaSwirlAmp = 0.0024 - lavaTideamplitude = 3 - lavaSpecularExp = 4.0 - lavaShadowStrength = 0.9 - lavaCoastLightBoost = 0.8 - lavaUVscale = 1.5 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (250, 0.10, 15) -- needs to be -1 than pre-game lava level - addTideRhym (415, 0.05, 30) - addTideRhym (250, 0.10, 5*60) - addTideRhym (415, 0.05, 30) - addTideRhym (250, 0.10, 5*60) - addTideRhym (415, 0.05, 3*30) - addTideRhym (250, 0.10, 10*60) - end - -elseif string.find(mapName, "hotstepper") then - lavaMap = true - lavaLevel = 100 -- pre-game lava level - lavaDamage = 130 -- damage per second - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (90, 0.25, 5*60) -- needs to be -1 than pre-game lava level - addTideRhym (215, 0.10, 5) - addTideRhym (90, 0.25, 5*60) - addTideRhym (290, 0.15, 5) - addTideRhym (90, 0.25, 4*60) - addTideRhym (355, 0.20, 5) - addTideRhym (90, 0.25, 4*60) - addTideRhym (390, 0.20, 5) - addTideRhym (90, 0.25, 2*60) - addTideRhym (440, 0.04, 2*60) - end - -elseif string.find(mapName, "zed remake") then - lavaMap = true - lavaGrow = 0 - lavaLevel = 1 -- pre-game lava level - lavaDamage = 75 -- damage per second - lavaUVscale = 1.5 - lavaColorCorrection = "vec3(0.4, 0.09, 1.2)" - lavaLOSdarkness = 0.8 - lavaCoastColor = "vec3(0.8, 0.03, 1.1)" - lavaFogColor = "vec3(0.60, 0.10, 1.1)" - lavaCoastLightBoost = 1.3 - lavaTideamplitude = 1.5 -- how much lava should rise up-down on static level - lavaTideperiod = 150 -- how much time between live rise up-down - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (0, 0.3, 5*6000) - end - - -elseif string.find(mapName, "acidicquarry") then - lavaMap = true - lavaGrow = 0 - nolavaburstcegs = true - lavaLevel = 5 - lavaColorCorrection = "vec3(0.26, 1.0, 0.03)" - --lavaCoastColor = "vec3(0.6, 0.7, 0.03)" - lavaCoastLightBoost = 1.2 - lavaCoastWidth = 10.0 -- how wide the coast of the lava should be - lavaFogColor = "vec3(1.60, 0.8, 0.3)" - --lavaCoastWidth = 30.0 - lavaParallaxDepth = 32.0 -- set to >0 to enable, how deep the parallax effect is - lavaParallaxOffset = 0.2 -- center of the parallax plane, from 0.0 (up) to 1.0 (down) - lavaSwirlFreq = 0.008 - lavaSwirlAmp = 0.017 - lavaUVscale = 2.2 - lavaSpecularExp = 12.0 - lavaTideamplitude = 3 - lavaTideperiod = 40 - lavaFogFactor = 0.13 - lavaFogHeight = 36 - lavaFogAbove = 0.1 - lavaFogDistortion = 2.0 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (4, 0.05, 5*6000) - end - - -elseif string.find(mapName, "speedmetal") then - lavaMap = true - lavaGrow = 0 - nolavaburstcegs = true - lavaLevel = 1 -- pre-game lava level - lavaColorCorrection = "vec3(0.3, 0.1, 1.5)" - --lavaCoastWidth = 40.0 - --lavaCoastColor = "vec3(1.7, 0.02, 1.4)" - lavaFogColor = "vec3(0.60, 0.02, 1)" - lavaSwirlFreq = 0.025 - lavaSwirlAmp = 0.003 - lavaTideamplitude = 3 - lavaTideperiod = 50 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (1, 0.05, 5*6000) - end - -elseif string.find(mapName, "thermal shock") then - lavaMap = true - lavaGrow = 0 - lavaColorCorrection = "vec3(1.0, 1.0, 1.0)" - lavaCoastColor = "vec3(1.0, 0.25, 0.0)" - lavaCoastLightBoost = 0.3 - lavaFogColor = "vec3(1.5, 0.1, 0.0)" - lavaFogFactor = 0.01 - lavaFogHeight = 15 - lavaFogAbove = 4.0 - lavaFogDistortion = 2.0 - lavaTideamplitude = 0.3 - lavaTideperiod = 1000 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (-1, 0.05, 5*6000) - end - -elseif string.find(mapName, "kill the middle") then - lavaMap = true - lavaLevel = 0 - lavaDamage = 150 -- damage per second - lavaTideamplitude = 3 - lavaTideperiod = 95 - lavaDiffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds" - lavaNormalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds" - lavaLOSdarkness = 0.7 - lavaColorCorrection = "vec3(1.1, 1.0, 0.88)" - lavaShadowStrength = 1.0 -- how much light a shadowed fragment can recieve - lavaCoastColor = "vec3(2.2, 0.4, 0.0)" - lavaCoastLightBoost = 0.7 - lavaCoastWidth = 36.0 - lavaFogFactor = 0.08 -- how dense the fog is - lavaFogColor = "vec3(2.0, 0.31, 0.0)" - lavaFogHeight = 85 - lavaFogAbove = 0.18 - - - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (-1, 0.25, 5*6000) -- needs to be -1 than pre-game lava level - end - -elseif string.find(mapName, "kings") then - lavaMap = true - lavaGrow = 0 - lavaColorCorrection = "vec3(1.0, 1.0, 1.0)" - lavaCoastColor = "vec3(1.0, 0.25, 0.0)" - lavaCoastLightBoost = 0.3 - lavaFogColor = "vec3(1.5, 0.1, 0.0)" - lavaFogFactor = 0.01 - lavaFogHeight = 15 - lavaFogAbove = 4.0 - lavaFogDistortion = 2.0 - lavaTideamplitude = 0.3 - lavaTideperiod = 1000 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (-1, 0.05, 5*6000) - end - -elseif string.find(mapName, "forge") then - lavaMap = true - lavaLevel = 0 - lavaDamage = 150 -- damage per second - lavaTideamplitude = 3 - lavaTideperiod = 95 - lavaDiffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds" - lavaNormalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds" - lavaLOSdarkness = 0.7 - lavaColorCorrection = "vec3(1.1, 1.0, 0.88)" - lavaShadowStrength = 1.0 -- how much light a shadowed fragment can recieve - lavaCoastColor = "vec3(2.2, 0.4, 0.0)" - lavaCoastLightBoost = 0.7 - lavaCoastWidth = 36.0 - lavaFogFactor = 0.02 -- how dense the fog is - lavaFogColor = "vec3(2.0, 0.31, 0.0)" - lavaFogHeight = 35 - lavaFogAbove = 0.18 - - - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (-1, 0.25, 5*6000) -- needs to be -1 than pre-game lava level - end - -elseif string.find(mapName, "sector") then - lavaMap = true - lavaGrow = 0 - nolavaburstcegs = true - lavaLevel = 5 - lavaDiffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds" - lavaNormalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds" - lavaColorCorrection = "vec3(0.2, 0.65, 0.03)" - --lavaCoastColor = "vec3(0.6, 0.7, 0.03)" - lavaCoastLightBoost = 0.6 - lavaCoastWidth = 60.0 -- how wide the coast of the lava should be - lavaFogColor = "vec3(1.60, 0.8, 0.3)" - --lavaCoastWidth = 30.0 - lavaParallaxDepth = 8.0 -- set to >0 to enable, how deep the parallax effect is - lavaParallaxOffset = 0.2 -- center of the parallax plane, from 0.0 (up) to 1.0 (down) - lavaSwirlFreq = 0.008 - lavaSwirlAmp = 0.017 - lavaUVscale = 2.2 - lavaSpecularExp = 12.0 - lavaTideamplitude = 3 - lavaTideperiod = 40 - lavaFogFactor = 0.13 - lavaFogHeight = 36 - lavaFogAbove = 0.1 - lavaFogDistortion = 2.0 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (4, 0.05, 5*6000) - end - -elseif string.find(mapName, "claymore") then - lavaMap = true - lavaGrow = 0 - nolavaburstcegs = true - lavaDiffuseEmitTex = "LuaUI/images/lava/lava2_diffuseemitblue.dds" - lavaColorCorrection = "vec3(0.4, 0.5, 0.4)" - lavaCoastColor = "vec3(0.24, 0.46, 0.5)" - lavaCoastLightBoost = 0.3 - lavaFogColor = "vec3(0.24, 0.46, 0.5)" - lavaFogFactor = 0.01 - lavaFogHeight = 15 - lavaFogAbove = 4.0 - lavaFogDistortion = 2.0 - lavaTideamplitude = 0.3 - lavaTideperiod = 1000 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (-1, 0.05, 5*6000) - end - -elseif string.find(mapName, "hyperion shale") then - lavaMap = true - lavaGrow = 0 - nolavaburstcegs = true - lavaDiffuseEmitTex = "LuaUI/images/lava/lava2_diffuseemitblue.dds" - lavaColorCorrection = "vec3(1.0, 1.0, 1.0)" - lavaCoastColor = "vec3(0.0, 0.35, 0.9)" - lavaCoastLightBoost = 0.3 - lavaFogColor = "vec3(0.0, 0.3, 1.0)" - lavaFogFactor = 0.01 - lavaFogHeight = 15 - lavaFogAbove = 4.0 - lavaFogDistortion = 2.0 - lavaTideamplitude = 0.3 - lavaTideperiod = 1000 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (-1, 0.05, 5*6000) - end - -elseif string.find(mapName, "azar") then - lavaMap = true - lavaLevel = 0 - lavaDamage = 150 -- damage per second - lavaTideamplitude = 3 - lavaTideperiod = 95 - lavaDiffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds" - lavaNormalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds" - lavaLOSdarkness = 0.7 - lavaColorCorrection = "vec3(1.1, 1.0, 0.88)" - lavaShadowStrength = 1.0 -- how much light a shadowed fragment can recieve - lavaCoastColor = "vec3(2.2, 0.4, 0.0)" - lavaCoastLightBoost = 0.7 - lavaCoastWidth = 36.0 - lavaFogFactor = 0.02 -- how dense the fog is - lavaFogColor = "vec3(2.0, 0.31, 0.0)" - lavaFogHeight = 35 - lavaFogAbove = 0.18 - lavaFogDistortion = 2.0 - lavaUVscale = 10.0 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (-1, 0.25, 5*6000) -- needs to be -1 than pre-game lava level - end - -elseif string.find(mapName, "stronghold") then - lavaMap = true - lavaGrow = 0 - nolavaburstcegs = true - lavaLevel = 5 - lavaDiffuseEmitTex = "LuaUI/images/lava/lava7_diffuseemit.dds" - lavaNormalHeightTex = "LuaUI/images/lava/lava7_normalheight.dds" - lavaColorCorrection = "vec3(0.2, 0.65, 0.03)" - --lavaCoastColor = "vec3(0.6, 0.7, 0.03)" - lavaCoastLightBoost = 0.6 - lavaCoastWidth = 60.0 -- how wide the coast of the lava should be - lavaFogColor = "vec3(1.60, 0.8, 0.3)" - --lavaCoastWidth = 30.0 - lavaParallaxDepth = 8.0 -- set to >0 to enable, how deep the parallax effect is - lavaParallaxOffset = 0.2 -- center of the parallax plane, from 0.0 (up) to 1.0 (down) - lavaSwirlFreq = 0.008 - lavaSwirlAmp = 0.017 - lavaUVscale = 2.2 - lavaSpecularExp = 12.0 - lavaTideamplitude = 3 - lavaTideperiod = 40 - lavaFogFactor = 0.13 - lavaFogHeight = 36 - lavaFogAbove = 0.1 - lavaFogDistortion = 2.0 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (4, 0.05, 5*6000) - end - -elseif Game.waterDamage > 0 and (not voidWaterMap) then -- Waterdamagemaps - keep at the very bottom - --lavaMap = true - --lavaGrow = 0 - --lavaLevel = 1 - --if isLavaGadget and isLavaGadget == "synced" then - -- addTideRhym (1, 0.25, 5*6000) - --end - - lavaMap = true - lavaGrow = 0 - nolavaburstcegs = true - lavaLevel = 1 - lavaColorCorrection = "vec3(0.15, 1.0, 0.45)" - --lavaCoastColor = "vec3(0.6, 0.7, 0.03)" - lavaCoastLightBoost = 0.5 - lavaCoastWidth = 16.0 -- how wide the coast of the lava should be - lavaFogColor = "vec3(1.60, 0.8, 0.3)" - --lavaCoastWidth = 30.0 - lavaParallaxDepth = 24.0 -- set to >0 to enable, how deep the parallax effect is - lavaParallaxOffset = 0.15 -- center of the parallax plane, from 0.0 (up) to 1.0 (down) - lavaSwirlFreq = 0.008 - lavaSwirlAmp = 0.01 - lavaUVscale = 3 - lavaSpecularExp = 12.0 - lavaTideamplitude = 3 - lavaTideperiod = 40 - lavaFogFactor = 0.1 - lavaFogHeight = 20 - lavaFogAbove = 0.1 - lavaFogDistortion = 1 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (4, 0.05, 5*6000) - end - -elseif Spring.GetModOptions().map_waterislava and (not voidWaterMap) then - lavaMap = true - lavaLevel = 4 - if isLavaGadget and isLavaGadget == "synced" then - addTideRhym (4, 0.05, 5*6000) - end -end - - diff --git a/luarules/configs/lups_projectile_fxs.lua b/luarules/configs/lups_projectile_fxs.lua index 2abca5996b2..98795a4f193 100644 --- a/luarules/configs/lups_projectile_fxs.lua +++ b/luarules/configs/lups_projectile_fxs.lua @@ -1,9 +1,124 @@ local fx = { + flame_heat = { + class = 'JitterParticles2', + colormap = { {1,1,1,1},{1,1,1,1} }, + count = 6, + life = 24, + delaySpread = 25, + force = {-10,0,0}, + --forceExp = 0.2, + emitRotSpread= 10, + + speed = 10, + speedSpread = 0, + speedExp = 1.5, + + size = 15, + sizeGrowth = 5.0, + + scale = 1.5, + strength = 1.0, + heat = 2, + }, + + sonic_distort = { + class = 'SphereDistortion', + colormap = { {1,1,1,1},{1,1,1,1} }, + count = 1, + life = 24, + delaySpread = 0, + force = {0,0,0}, + --forceExp = 0.2, + + emitRotSpread= 180, + + speed = 0, + + speedSpread = 0, + speedExp = 0, + + size = 50, + sizeGrowth = 0, + + scale = 5, + strength = 10, + growth = 0, + heat = 20, + }, + + flame1 = { + class = 'SimpleParticles2', + colormap = { {1, 1, 1, 0.01}, + {1, 1, 1, 0.01}, + {0.75, 0.5, 0.5, 0.01}, + {0.35, 0.15, 0.15, 0.25}, + {0.1, 0.035, 0.01, 0.2}, + {0, 0, 0, 0.01} }, + count = 4, + life = 24, + delaySpread = 25, + + force = {0,1,0}, + --forceExp = 0.2, + + emitRotSpread= 8, + + rotSpeed = 1, + rotSpread = 360, + rotExp = 9, + + --speed = 10, + --speedSpread = 0, + --speedExp = 1.5, + + size = 2, + sizeGrowth = 4.0, + sizeExp = 0.7, + + --texture = "bitmaps/smoke/smoke06.tga", + texture = altFlameTexture and "bitmaps/GPL/flame_alt.tga" or "bitmaps/GPL/flame.tga", + }, + + flame2 = { + class = 'SimpleParticles2', + colormap = { {1, 1, 1, 0.01}, {0, 0, 0, 0.01} }, + count = 20, + --delay = 20, + life = 10, + lifeSpread = 20, + delaySpread = 15, + + force = {0,1,0}, + --forceExp = 0.2, + + emitRotSpread= 3, + + rotSpeed = 1, + rotSpread = 360, + rotExp = 9, + + speed = 10, + --speedSpread = 0, + + size = 2, + sizeGrowth = 4.0, + sizeExp = 0.65, + + --texture = "bitmaps/smoke/smoke06.tga", + texture = altFlameTexture and "bitmaps/GPL/flame_alt.tga" or "bitmaps/GPL/flame.tga", + }, } local tbl = { + --[[ + corpyro_flamethrower = { + {class = "JitterParticles2", options = fx.flame_heat}, + {class = "SimpleParticles2", options = fx.flame1}, + {class = "SimpleParticles2", options = fx.flame2}, + }, + ]]-- } local tbl2 = {} diff --git a/luarules/configs/scav_spawn_defs.lua b/luarules/configs/scav_spawn_defs.lua index 661c84d1caf..463f911359e 100644 --- a/luarules/configs/scav_spawn_defs.lua +++ b/luarules/configs/scav_spawn_defs.lua @@ -295,7 +295,7 @@ local LandUnitsList = { --Cortex ["corakt4_scav"] = 3, --Legion - + ["legjav_scav"] = 3, --N/A }, [7] = { @@ -400,6 +400,7 @@ local LandUnitsList = { ["corgolt4_scav"] = 2, --Legion ["leegmech_scav"] = 2, + ["legerailtank_scav"] = 2, }, }, Support = { @@ -454,6 +455,7 @@ local LandUnitsList = { ["legvcarry_scav"] = 2, ["legbart_scav"] = 2, ["legsrail_scav"] = 2, + ["legvflak_scav"] = 2, }, [5] = { @@ -778,6 +780,8 @@ local SeaUnitsList = { ["cormship_scav"] = 2, ["corsjam_scav"] = 2, ["corsentinel_scav"] = 2, + --Legion + ["legvflak_scav"] = 2, }, [6] = { --Armada @@ -1041,6 +1045,8 @@ local AirUnitsList = { ["corseap_scav"] = 2, ["corcut_scav"] = 2, ["cortitan_scav"] = 2, + + ["legatorpbomber"] = 2, }, [5] = { ["armsfig_scav"] = 2, @@ -1055,6 +1061,8 @@ local AirUnitsList = { ["corseap_scav"] = 2, ["corcut_scav"] = 2, ["cortitan_scav"] = 2, + + ["legatorpbomber"] = 2, }, [6] = { ["armsfig_scav"] = 2, @@ -1069,6 +1077,8 @@ local AirUnitsList = { ["corseap_scav"] = 2, ["corcut_scav"] = 2, ["cortitan_scav"] = 2, + + ["legatorpbomber"] = 2, }, [7] = { --Armada @@ -1301,6 +1311,9 @@ local Turrets = { ["leggant_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 1}, ["armshltxuw_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 1}, ["corgantuw_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 1}, + --misc + ["armgatet3_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, + ["corgatet3_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, }, [7] = { --Epic Bulwark and Pulsar/rag/cal @@ -1899,9 +1912,9 @@ addNewSquad({ type = "specialAirLand", minAnger = tierConfiguration[3].minAnger, addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "10 armfav_scav","10 corfav_scav","25 armzapper_scav",}, weight = 6, maxAnger = tierConfiguration[4].maxAnger}) --Rover and EMP Rover/Whole Tier Length --Land addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "6 armlatnk_scav","6 cortorch_scav","6 legmrv_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Veh Raid -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "6 armbull_scav","6 correap_scav","1 corgol_scav","2 legaheattank_scav","2 armyork_scav","2 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Veh Assault/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "6 armbull_scav","6 correap_scav","1 corgol_scav","2 legaheattank_scav","2 armyork_scav","2 corsent_scav","2 legvflak_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Veh Assault/AA addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "2 armmanni_scav","2 corban_scav","1 legvcarry_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Veh Unique -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "3 armmart_scav","1 armmerl_scav","1 armyork_scav","3 cormart_scav","1 corvroc_scav","1 corsent_scav","1 leginf_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Arty/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "3 armmart_scav","1 armmerl_scav","1 armyork_scav","3 cormart_scav","1 corvroc_scav","1 corsent_scav","2 legvflak_scav","1 leginf_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Arty/AA --air addNewSquad({ type = "specialAirLand", minAnger = tierConfiguration[5].minAnger, units = { "3 armawac_scav","3 corawac_scav",}, weight = 4, maxAnger = 1000}) --T2 Air Scouts addNewSquad({ type = "specialAirLand", minAnger = tierConfiguration[5].minAnger, units = { "2 armstil_scav",}, weight = 4, maxAnger = 1000}) --EMP Bombers @@ -1914,9 +1927,9 @@ addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, un addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 cortorch_scav","6 legmrv_scav",}, weight = 3, maxAnger = tierConfiguration[6].maxAnger}) --T2 Veh Raid --Land addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "12 armmar_scav",}, weight = 3, maxAnger = tierConfiguration[6].maxAnger}) --T3 Raid -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 armmeatball_scav","6 armassimilator_scav","2 armyork_scav","2 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Assault/AA -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 corshiva_scav","2 armraz_scav","1 legpede_scav","1 armyork_scav","1 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Assault/AA -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "2 armvang_scav","2 corcat_scav","1 armyork_scav","1 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Arty/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 armmeatball_scav","6 armassimilator_scav","2 armyork_scav","2 corsent_scav"," 2 legvflak_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Assault/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 corshiva_scav","2 armraz_scav","1 legpede_scav","1 armyork_scav","1 corsent_scav","2 legvflak_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Assault/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "2 armvang_scav","2 corcat_scav","1 armyork_scav","1 corsent_scav","2 legvflak_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Arty/AA addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "5 armvadert4_scav",}, weight = 3, maxAnger = 1000}) --Epic Tumbleweeds addNewSquad({ type = "specialSea", minAnger = tierConfiguration[6].minAnger, units = { "5 armvadert4_scav",}, weight = 3, maxAnger = 1000}) --Epic Tumbleweeds --air diff --git a/luarules/gadgets.lua b/luarules/gadgets.lua index 29eb115a005..af76d7f190e 100644 --- a/luarules/gadgets.lua +++ b/luarules/gadgets.lua @@ -157,6 +157,7 @@ local callInLists = { -- "UnitMoveFailed", "StockpileChanged", + "ActiveCommandChanged", "CommandNotify", -- Feature CallIns @@ -236,6 +237,8 @@ local callInLists = { 'DrawShadowUnitsLua', 'DrawShadowFeaturesLua', + 'FontsChanged', + "RecvFromSynced", -- moved from LuaUI @@ -2149,6 +2152,12 @@ function gadgetHandler:DefaultCommand(type, id, cmd) return end +function gadgetHandler:ActiveCommandChanged(id, cmdType) + for _, g in ipairs(self.ActiveCommandChangedList) do + g:ActiveCommandChanged(id, cmdType) + end +end + function gadgetHandler:CommandNotify(id, params, options) for _, g in ipairs(self.CommandNotifyList) do if g:CommandNotify(id, params, options) then @@ -2426,4 +2435,16 @@ end -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- +function gadgetHandler:FontsChanged() + tracy.ZoneBeginN("FontsChanged") + for _, w in r_ipairs(self.FontsChangedList) do + w:FontsChanged() + end + tracy.ZoneEnd() + return +end + +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- + gadgetHandler:Initialize() diff --git a/luarules/gadgets/ai/STAI/armyhst.lua b/luarules/gadgets/ai/STAI/armyhst.lua index ab11c3f3126..fd2405049c1 100644 --- a/luarules/gadgets/ai/STAI/armyhst.lua +++ b/luarules/gadgets/ai/STAI/armyhst.lua @@ -535,8 +535,6 @@ function ArmyHST:Init() self._torpedo1_ = { cortl = true , armtl = true , - armptl = true , - corptl = true , } self._torpedo2_ = { diff --git a/luarules/gadgets/ai/Shard/unithandler.lua b/luarules/gadgets/ai/Shard/unithandler.lua index db310d27782..63f527775db 100644 --- a/luarules/gadgets/ai/Shard/unithandler.lua +++ b/luarules/gadgets/ai/Shard/unithandler.lua @@ -55,7 +55,6 @@ local inactive = { armfrock = true, armfrt = true, armgplat = true, - armptl = true, armtl = true, armfmkr = true, armtide = true, @@ -129,7 +128,6 @@ local inactive = { corfrock = true, corfrt = true, corgplat = true, - corptl = true, cortl = true, corfmkr = true, cortide = true, diff --git a/luarules/gadgets/ai_namer.lua b/luarules/gadgets/ai_namer.lua index f1a57ad5d81..328293ff462 100644 --- a/luarules/gadgets/ai_namer.lua +++ b/luarules/gadgets/ai_namer.lua @@ -63,6 +63,7 @@ if gadgetHandler:IsSyncedCode() then "lamer", "Lexon", "Lonewolfdesign", + "LostDeadMan", "lov", "LunyAlex", "MaDDoX", @@ -113,6 +114,7 @@ if gadgetHandler:IsSyncedCode() then "tovernaar123", "Vache", "verybadsoldier", + "Volshok", "Watch The Fort", "wilkubyk", "Xehrath", @@ -156,6 +158,7 @@ if gadgetHandler:IsSyncedCode() then "[Master_Conquest]", "MelKaven", "mordante", + "MoustacheG", "nctr", "Nexthazard", "niftybeaks", @@ -171,7 +174,7 @@ if gadgetHandler:IsSyncedCode() then "rous", "Rikerss", --Merch $20+ "Sovgut", --Tourney prize $50 - "Shadowisperke", + "Shadowisper", "Spanker", "SuperMadmax", "sversuge", @@ -301,6 +304,7 @@ if gadgetHandler:IsSyncedCode() then "Webber", "Welder", "Whistler", + "Osprey", --CORTEX names "Aggravator", @@ -395,7 +399,91 @@ if gadgetHandler:IsSyncedCode() then "Wasp", "Watcher", "Whirlwind", - "Wolverine" + "Wolverine", + "Hephaestus", + + + --LEGION names + "Wheelie", + "Sapper", + "Alaris", + "Helios", + "Barrage", + "Cetus", + "Decurion", + "Quickshot", + "Gladiator", + "Boreas", + "Medusa", + "Mantis", + "Cleaver", + "Inferno", + "Prometheus", + "Triton", + "Goblin", + "Lobber", + "Centaur", + "Ballista", + "Karkinos", + "Proteus", + "Strider", + "Grenadier", + "Belcher", + "Infestor", + "Arquebus", + "Phalanx", + "Incinerator", + "Snapper", + "Noctua", + "Mosquito", + "Blindfold", + "Martyr", + "Aeolus", + "Legionnaire", + "Venator", + "Stronghold", + "Tyrannus", + "Wildfire", + "Harbinger", + "Phoenix", + "Whisper", + "Glaucus", + "Nereus", + "Salacia", + "Alpheus", + "Cardea", + "Velite", + "Pontus", + "Triarius", + "Optio", + "Portent", + "Stingray", + "Hastatus", + "Neptune", + "Javelin", + "Keres", + "Mukade", + "Praetorean", + "Rampart", + "Eviscerator", + "Aegis", + "Bastion", + "Bombardier", + "Amputator", + "Hive", + "Fortifier", + "Nyx", + "Pharos", + "Xyston", + "Olympus", + "Lupara", + "Cacophony", + "Perdition", + "Rhapsis", + "Bramble", + "Piscator", + "Supernova", + "Starfall" } local namelistRaptor = {'Alien Raptors'} local namelistScavengers = {'Scavengers'} diff --git a/luarules/gadgets/ai_simpleai.lua b/luarules/gadgets/ai_simpleai.lua index 826628e0bc2..528d4e2e591 100644 --- a/luarules/gadgets/ai_simpleai.lua +++ b/luarules/gadgets/ai_simpleai.lua @@ -270,8 +270,7 @@ local function SimpleBuildOrder(cUnitID, building) local refDefID = Spring.GetUnitDefID(buildnear) local isBuilding = UnitDefs[refDefID].isBuilding local isCommander = (UnitDefs[refDefID].name == "armcom" or UnitDefs[refDefID].name == "corcom") - local isExtractor = UnitDefs[refDefID].extractsMetal > 0 - if (isBuilding or isCommander) then-- and not isExtractor then + if (isBuilding or isCommander) then local refx, refy, refz = Spring.GetUnitPosition(buildnear) local reffootx = UnitDefs[refDefID].xsize * 8 local reffootz = UnitDefs[refDefID].zsize * 8 @@ -314,7 +313,7 @@ local function SimpleBuildOrder(cUnitID, building) --Spring.Echo("SBO",cUnitID, numtests, searchRange/300) end -local function SimpleConstructionProjectSelection(unitID, unitDefID, unitName, unitTeam, allyTeamID, units, allunits, type) +local function SimpleConstructionProjectSelection(unitID, unitDefID, unitTeam, units, type) --tracy.ZoneBeginN("SimpleAI:SimpleConstructionProjectSelection") local success = false @@ -323,7 +322,6 @@ local function SimpleConstructionProjectSelection(unitID, unitDefID, unitName, u local ecurrent, estorage, _, eincome, eexpense = Spring.GetTeamResources(unitTeam, "energy") local unitposx, unitposy, unitposz = Spring.GetUnitPosition(unitID) - local unitCommands = Spring.GetCommandQueue(unitID, 0) --local buildOptions = UnitDefs[unitDefID].buildOptions local buildOptions = BuildOptions[unitDefID] -- Builders @@ -484,6 +482,7 @@ if gadgetHandler:IsSyncedCode() then function gadget:GameFrame(n) if n % 15 == 0 then + local allunits -- will lazy load later if needed for i = 1, SimpleAITeamIDsCount do if n%(15*SimpleAITeamIDsCount) == 15*(i-1) then --tracy.ZoneBeginN("SimpleAI:GameFrame") @@ -504,11 +503,9 @@ if gadgetHandler:IsSyncedCode() then end local units = Spring.GetTeamUnits(teamID) - local allunits = Spring.GetAllUnits() for k = 1, #units do local unitID = units[k] local unitDefID = Spring.GetUnitDefID(unitID) - local unitName = UnitDefs[unitDefID].name local unitTeam = teamID local unitHealth, unitMaxHealth, _, _, _ = Spring.GetUnitHealth(unitID) local unitCommands = Spring.GetCommandQueue(unitID, 0) @@ -571,18 +568,17 @@ if gadgetHandler:IsSyncedCode() then end if unitCommands == 0 then - if SimpleConstructorDefs[unitDefID] then - SimpleConstructionProjectSelection(unitID, unitDefID, unitName, unitTeam, allyTeamID, units, allunits, "Builder") + SimpleConstructionProjectSelection(unitID, unitDefID, unitTeam, units, "Builder") end if SimpleCommanderDefs[unitDefID] then - SimpleConstructionProjectSelection(unitID, unitDefID, unitName, unitTeam, allyTeamID, units, allunits, "Commander") + SimpleConstructionProjectSelection(unitID, unitDefID, unitTeam, units, "Commander") end if SimpleFactoriesDefs[unitDefID] then - SimpleConstructionProjectSelection(unitID, unitDefID, unitName, unitTeam, allyTeamID, units, allunits, "Factory") + SimpleConstructionProjectSelection(unitID, unitDefID, unitTeam, units, "Factory") end -- army @@ -590,6 +586,7 @@ if gadgetHandler:IsSyncedCode() then if SimpleUndefinedUnitDefs[unitDefID] then local luaAI = Spring.GetTeamLuaAI(teamID) if string.sub(luaAI, 1, 16) == 'SimpleDefenderAI' then + allunits = allunits or Spring.GetAllUnits() for t = 1,10 do local targetUnit = allunits[random(1,#allunits)] if Spring.GetUnitAllyTeam(targetUnit) == allyTeamID then @@ -622,7 +619,6 @@ if gadgetHandler:IsSyncedCode() then end function gadget:UnitCreated(unitID, unitDefID, unitTeam, builderID) - local unitName = UnitDefs[unitDefID].name for i = 1, SimpleAITeamIDsCount do if SimpleAITeamIDs[i] == unitTeam then Spring.GiveOrderToUnit(unitID,CMD.FIRE_STATE,{2},0) @@ -643,7 +639,6 @@ if gadgetHandler:IsSyncedCode() then end function gadget:UnitDestroyed(unitID, unitDefID, unitTeam, attackerID, attackerDefID, attackerTeam) - local unitName = UnitDefs[unitDefID].name for i = 1, SimpleAITeamIDsCount do if SimpleAITeamIDs[i] == unitTeam then if SimpleFactoriesDefs[unitDefID] then diff --git a/luarules/gadgets/cmd_undo.lua b/luarules/gadgets/cmd_undo.lua index 450905a8a82..e5b402e4c6c 100644 --- a/luarules/gadgets/cmd_undo.lua +++ b/luarules/gadgets/cmd_undo.lua @@ -7,7 +7,7 @@ function gadget:GetInfo() date = 'June 2017', license = 'GNU GPL, v2 or later', layer = 1, - enabled = true + enabled = false } end diff --git a/luarules/gadgets/gaia_critters.lua b/luarules/gadgets/gaia_critters.lua index c1b0ce6e9fa..63142ad3765 100644 --- a/luarules/gadgets/gaia_critters.lua +++ b/luarules/gadgets/gaia_critters.lua @@ -16,15 +16,16 @@ if not gadgetHandler:IsSyncedCode() then end local isCritter = {} -for udid, unitDef in pairs(UnitDefs) do - if string.sub(unitDef.name, 1, 7) == "critter" then - isCritter[udid] = true - end -end - local isCommander = {} +local isFlyingCritter = {} + for unitDefID, unitDef in pairs(UnitDefs) do - if unitDef.customParams.iscommander then + if string.sub(unitDef.name, 1, 7) == "critter" then + isCritter[unitDefID] = true + if unitDef.canFly then + isFlyingCritter[unitDefID] = true + end + elseif unitDef.customParams.iscommander then isCommander[unitDefID] = true end end @@ -48,6 +49,7 @@ local GaiaTeamID = Spring.GetGaiaTeamID() local critterConfig = include("LuaRules/configs/critters.lua") local critterUnits = {} --critter units that are currently alive +local critterBackup = {} --critter units to restore local companionCritters = {} local sceduledOrders = {} local commanders = {} @@ -70,34 +72,33 @@ local companionRadius = companionRadiusStart local processOrders = true local addedInitialCritters +local ownCritterDestroy = false + local function randomPatrolInBox(unitID, box, minWaterDepth) -- only define minWaterDepth if unit is a submarine local ux,_,uz = GetUnitPosition(unitID,true,true) - local waterRadius = 1000 -- max distance a submarine unit will travel local orders = 6 local attempts = orders - if minWaterDepth ~= nil then - attempts = 150 - end local ordersGiven = 0 local x,z local modifiers = {} + local box_x1, box_x2, box_z1, box_z2 = box.x1, box.x2, box.z1, box.z2 + if minWaterDepth ~= nil then + attempts = 150 + local waterRadius = 1000 -- max distance a submarine unit will travel + local x1 = ux - waterRadius + if x1 < box_x1 then x1 = box_x1 end + local x2 = ux + waterRadius + if x2 > box_x2 then x2 = box_x2 end + local z1 = uz - waterRadius + if z1 < box_z1 then z1 = box_z1 end + local z2 = uz + waterRadius + if z2 > box_z2 then z2 = box_z2 end + box_x1, box_x2, box_z1, box_z2 = x1, x2, z1, z2 + end for i=1,attempts do - if minWaterDepth == nil then - x = random(box.x1, box.x2) - z = random(box.z1, box.z2) - else - local x1 = ux - waterRadius - if x1 < box.x1 then x1 = box.x1 end - local x2 = ux + waterRadius - if x2 > box.x2 then x2 = box.x2 end - local z1 = uz - waterRadius - if z1 < box.z1 then z1 = box.z1 end - local z2 = uz + waterRadius - if z2 > box.z2 then z2 = box.z2 end - x = random(x1, x2) - z = random(z1, z2) - end + x = random(box_x1, box_x2) + z = random(box_z1, box_z2) if x > 0 and z > 0 and x < mapSizeX and z < mapSizeZ then local y = GetGroundHeight(x, z) if minWaterDepth == nil or y < minWaterDepth then @@ -144,26 +145,25 @@ local function processSceduledOrders() end end -local function randomPatrolInCircle(unitID, circle, minWaterDepth) -- only define minWaterDepth if unit is a submarine +local function randomPatrolInCircle(unitID, ux, uz, ur, minWaterDepth) -- only define minWaterDepth if unit is a submarine local orders = 6 - local waterRadius = 1000 -- max distance a submarine unit will travel local attempts = orders - if minWaterDepth ~= nil then - attempts = 150 - end local ordersGiven = 0 - local ux, uz, ur = circle.x, circle.z, circle.r local modifiers = {} - for i=1,attempts do - if minWaterDepth ~= nil and waterRadius <= circle.r then - ux,_,uz = GetUnitPosition(unitID,true,true) + if minWaterDepth ~= nil then + local waterRadius = 1000 -- max distance a submarine unit will travel + attempts = 150 + if waterRadius <= ur then + ux, _, uz = GetUnitPosition(unitID, true, true) ur = waterRadius end + end + for i=1,attempts do local a = rad(random(0, 360)) local r = random(0, ur) local x = ux + r*sin(a) local z = uz + r*cos(a) - if x > 0 and z > 0 and x < mapSizeX and z < mapSizeZ and in_circle(circle.x, circle.z, circle.r, x, z) then + if x > 0 and z > 0 and x < mapSizeX and z < mapSizeZ and in_circle(ux, uz, ur, x, z) then local y = GetGroundHeight(x, z) if minWaterDepth == nil or y < minWaterDepth then if sceduledOrders[unitID] == nil then @@ -177,6 +177,7 @@ local function randomPatrolInCircle(unitID, circle, minWaterDepth) -- only defin ordersGiven = ordersGiven + 1 end end + if ordersGiven == orders then break end end end @@ -199,7 +200,7 @@ end local function makeUnitCritter(unitID) setGaiaUnitSpecifics(unitID) - critterUnits[unitID] = {alive=true} + critterUnits[unitID] = {} totalCritters = totalCritters + 1 aliveCritters = aliveCritters + 1 end @@ -268,49 +269,53 @@ local function adjustCritters(newAliveCritters) local critterDifference = newAliveCritters - aliveCritters local add = false + local critterArrayFrom = critterUnits if critterDifference > 0 then add = true + critterArrayFrom = critterBackup if not addCrittersAgain then return end end - local removeKeys = {} - local removeKeysCount = 0 - for unitID, critter in pairs(critterUnits) do - if add and not critter.alive or not add and critter.alive then - if add then - if critter.x ~= nil and critter.y ~= nil and critter.z ~= nil then -- had nil error once so yeah... - removeKeysCount = removeKeysCount + 1 - removeKeys[removeKeysCount] = unitID - local newUnitID = CreateUnit(critter.unitName, critter.x, critter.y, critter.z, 0, GaiaTeamID) - setGaiaUnitSpecifics(newUnitID) - critterDifference = critterDifference - 1 - end - else - local x,y,z = GetUnitPosition(unitID,true,true) - aliveCritters = aliveCritters - 1 - critterDifference = critterDifference + 1 - critterUnits[unitID].alive = false - critterUnits[unitID].x = x - critterUnits[unitID].y = y - critterUnits[unitID].z = z - Spring.DestroyUnit(unitID, false, true) -- reclaimed - if aliveCritters <= minCritters then break end + local changed = false + for unitID, critter in pairs(critterArrayFrom) do + if add then + if critter.x ~= nil and critter.y ~= nil and critter.z ~= nil then -- had nil error once so yeah... + CreateUnit(critter.unitName, critter.x, critter.y, critter.z, 0, GaiaTeamID) + critterDifference = critterDifference - 1 + critterArrayFrom[unitID] = nil + totalCritters = totalCritters - 1 -- CreateUnit adds 1 here but we want to keep it constant + changed = true end - if critterDifference > -1 and critterDifference < 1 then break end + else + local x,y,z = GetUnitPosition(unitID,true,true) + critterDifference = critterDifference + 1 + + critterBackup[unitID] = critter + critterBackup[unitID].x = x + critterBackup[unitID].y = y + critterBackup[unitID].z = z + + Spring.DestroyUnit(unitID, false, true) -- reclaimed + totalCritters = totalCritters + 1 -- DestroyUnit callin substracts 1 here but we want to keep it constant, so re-adding + + changed = true + if aliveCritters <= minCritters then break end end + if critterDifference > -1 and critterDifference < 1 then break end end - if add then - for i, unitID in ipairs(removeKeys) do - critterUnits[unitID] = nil -- this however leaves these keys still being iterated - end + if changed then --if totalCritters > 800 then -- occasional cleanup (leaving this in will make ´critterDifference´ useless) local newCritterUnits = {} - for unitID, critter in pairs(critterUnits) do + for unitID, critter in pairs(critterArrayFrom) do if critter ~= nil then newCritterUnits[unitID] = critter end end - critterUnits = newCritterUnits + if add then + critterBackup = newCritterUnits + else + critterUnits = newCritterUnits + end --end end end @@ -348,7 +353,7 @@ end local function convertMapCrittersToCompanion() for unitID, critter in pairs(critterUnits) do - if critter.alive and not companionCritters[unitID] then + if critter and not companionCritters[unitID] then critterToCompanion(unitID) end end @@ -395,6 +400,7 @@ local function addMapCritters() end end elseif cC.spawnCircle then + local spawnCircle = cC.spawnCircle for unitName, unitAmount in pairs(cC.unitNames) do local unitDefID = getUnitDefIdbyName(unitName) if not UnitDefs[unitDefID] then @@ -409,12 +415,12 @@ local function addMapCritters() if amount > 0 and amount < 1 then amount = 1 end amount = round(amount) + local unitID = nil for i=1, amount do - local unitID = nil local a = rad(random(0, 360)) - local r = random(0, cC.spawnCircle.r) - local x = cC.spawnCircle.x + r*sin(a) - local z = cC.spawnCircle.z + r*cos(a) + local r = random(0, spawnCircle.r) + local x = spawnCircle.x + r*sin(a) + local z = spawnCircle.z + r*cos(a) local y = GetGroundHeight(x, z) if not waterunit or cC.nowatercheck ~= nil or y < minWaterDepth then local supplyMinWaterDepth = nil @@ -423,7 +429,7 @@ local function addMapCritters() end unitID = CreateUnit(unitName, x, y, z, 0, GaiaTeamID) if unitID then - randomPatrolInCircle(unitID, cC.spawnCircle, supplyMinWaterDepth) + randomPatrolInCircle(unitID, spawnCircle.x, spawnCircle.z, spawnCircle.r, supplyMinWaterDepth) --makeUnitCritter(unitID) critterUnits[unitID].unitName = unitName else @@ -452,7 +458,6 @@ function gadget:GameFrame(gameFrame) for unitID, critters in pairs(companionCritters) do local x,y,z = GetUnitPosition(unitID) local radius = companionPatrolRadius - local circle = {x=x, z=z, r=radius} if not ValidUnitID(unitID) then companionCritters[unitID] = nil else @@ -462,7 +467,7 @@ function gadget:GameFrame(gameFrame) else local cx,cy,cz = GetUnitPosition(critterID) if abs(x-cx) > radius*1.1 or abs(z-cz) > radius*1.1 then - randomPatrolInCircle(critterID, circle, nil) + randomPatrolInCircle(critterID, x, z, radius) end end end @@ -506,11 +511,10 @@ function gadget:UnitIdle(unitID, unitDefID, unitTeam) if isCritter[unitDefID] and not sceduledOrders[unitID] then local x,y,z = GetUnitPosition(unitID,true,true) local radius = 220 - if UnitDefs[unitDefID].name == "critter_gull" then + if isFlyingCritter[unitDefID] then radius = 750 end - local circle = {x=x, z=z, r=radius} - randomPatrolInCircle(unitID, circle) + randomPatrolInCircle(unitID, x, z, radius) end end @@ -535,11 +539,10 @@ function gadget:UnitCreated(unitID, unitDefID, unitTeam) elseif isCritter[unitDefID] then local x,_,z = GetUnitPosition(unitID,true,true) local radius = 300 - if UnitDefs[unitDefID].name == "critter_gull" then + if isFlyingCritter[unitDefID] then radius = 1500 end - local circle = {x=x, z=z, r=radius} - randomPatrolInCircle(unitID, circle) + randomPatrolInCircle(unitID, x, z, radius) -- make it a companion if close to a commander companionRadius = companionRadiusStart @@ -569,10 +572,12 @@ function gadget:UnitCreated(unitID, unitDefID, unitTeam) end function gadget:UnitDestroyed(unitID, unitDefID, teamID, attackerID, attackerDefID, attackerTeamID) - commanders[unitID] = nil - if critterUnits[unitID] ~= nil and attackerID ~= nil then + if commanders[unitID] then + commanders[unitID] = nil + elseif critterUnits[unitID] then critterUnits[unitID] = nil totalCritters = totalCritters - 1 + aliveCritters = aliveCritters - 1 end end @@ -580,7 +585,8 @@ end function gadget:AllowCommand(unitID, unitDefID, unitTeam, cmdID, cmdParams, cmdOptions, cmdTag, playerID, fromSynced, fromLua) -- accepts: CMD.ATTACK if cmdParams and #cmdParams == 1 then - if critterUnits[cmdParams[1]] ~= nil then + local critter = critterUnits[cmdParams[1]] + if critter then return false end end diff --git a/luarules/gadgets/gaia_flyby_aircrafts.lua b/luarules/gadgets/gaia_flyby_aircrafts.lua index a5ed4ee9298..5fd1c4962e2 100644 --- a/luarules/gadgets/gaia_flyby_aircrafts.lua +++ b/luarules/gadgets/gaia_flyby_aircrafts.lua @@ -151,6 +151,7 @@ local flyByUnits = { "corsb", "corseap", "corsfig", + "legatorpbomber", } function gadget:GameFrame(n) diff --git a/luarules/gadgets/game_team_power_watcher.lua b/luarules/gadgets/game_team_power_watcher.lua index 928fea63dd1..6116715ee87 100644 --- a/luarules/gadgets/game_team_power_watcher.lua +++ b/luarules/gadgets/game_team_power_watcher.lua @@ -13,15 +13,20 @@ end if not gadgetHandler:IsSyncedCode() then return end +local teamIsOverPoweredRatio = 1.25 +local alliesAreWinningRatio = 1.25 + local teamList = Spring.GetTeamList() local scavengerTeam local raptorTeam local aiTeams = {} local neutralTeam local humanTeams = {} +local playerTeams = {} local teamPowers = {} local peakTeamPowers = {} local unitsWithPower = {} +local playerAllies = {} local powerThresholds = { {techLevel = 0.5, threshold = 0}, {techLevel = 1, threshold = 9000}, @@ -36,16 +41,24 @@ local powerThresholds = { for _, teamID in ipairs(teamList) do local teamLuaAI = Spring.GetTeamLuaAI(teamID) + local allyID = select(6, Spring.GetTeamInfo(teamID)) + if (teamLuaAI and string.find(teamLuaAI, "ScavengersAI")) then scavengerTeam = teamID elseif (teamLuaAI and string.find(teamLuaAI, "RaptorsAI")) then raptorTeam = teamID elseif select (4, Spring.GetTeamInfo(teamID, false)) then aiTeams[teamID] = true + playerTeams[teamID] = true + playerAllies[allyID] = playerAllies[allyID] or {} + playerAllies[allyID][teamID] = true elseif teamID == tonumber(teamList[#teamList]) then neutralTeam = teamID else humanTeams[teamID] = true + playerTeams[teamID] = true + playerAllies[allyID] = playerAllies[allyID] or {} + playerAllies[allyID][teamID] = true end end @@ -133,7 +146,7 @@ local function averagePlayerTeamPower() local teamCount = 0 for id, power in pairs(teamPowers) do - if isPlayerTeam(id) then + if isPlayerTeam(id) and power > 0 then totalPower = totalPower + power teamCount = teamCount + 1 end @@ -149,7 +162,7 @@ local function lowestPlayerTeamPower() local lowestTeamID = nil for teamID, power in pairs(teamPowers) do - if isPlayerTeam(teamID) then + if isPlayerTeam(teamID) and power > 0 then if power < lowestPower then lowestPower = power lowestTeamID = teamID @@ -183,7 +196,7 @@ local function averageHumanTeamPower() local teamCount = 0 for id, power in pairs(teamPowers) do - if humanTeams[id] then + if humanTeams[id] and power > 0 then totalPower = totalPower + power teamCount = teamCount + 1 end @@ -199,7 +212,7 @@ local function lowestHumanTeamPower() local lowestTeamID = nil for teamID, power in pairs(teamPowers) do - if humanTeams[teamID] then + if humanTeams[teamID] and power > 0 then if power < lowestPower then lowestPower = power lowestTeamID = teamID @@ -210,14 +223,14 @@ local function lowestHumanTeamPower() return {teamID = lowestTeamID, power = lowestPower} end --- Returns the highest team power of the allies belonging to input team. Returns as a table {teamID, power}. -local function highestAlliedTeamPower(teamID) - local allyTeamNum = select(6, Spring.GetTeamInfo(teamID)) +-- Returns the highest team power of the allies belonging to input team or allyID. Returns as a table {teamID, power}. +local function highestAlliedTeamPower(teamID, allyID) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) local highestPower = 0 local highestTeamID = nil for id, power in pairs(teamPowers) do - if allyTeamNum == select(6, Spring.GetTeamInfo(id)) then + if allyID == select(6, Spring.GetTeamInfo(id)) and power > 0 then if power > highestPower then highestPower = power highestTeamID = id @@ -228,14 +241,14 @@ local function highestAlliedTeamPower(teamID) return {teamID = highestTeamID, power = highestPower} end --- Returns the average of all allies of the input teamID. Returns a number. -local function averageAlliedTeamPower(teamID) - local allyTeamNum = select(6, Spring.GetTeamInfo(teamID)) +-- Returns the average of all allies of the input teamID or allyID. Returns a number. +local function averageAlliedTeamPower(teamID, allyID) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) local totalPower = 0 local teamCount = 0 for id, power in pairs(teamPowers) do - if allyTeamNum == select(6, Spring.GetTeamInfo(id)) then + if allyID == select(6, Spring.GetTeamInfo(id)) and power > 0 then totalPower = totalPower + power teamCount = teamCount + 1 end @@ -245,14 +258,14 @@ local function averageAlliedTeamPower(teamID) return averagePower end --- Returns the lowest of the teamID's allies power as a table {teamID, power}. -local function lowestAlliedTeamPower(teamID) - local allyTeamNum = select(6, Spring.GetTeamInfo(teamID)) +-- Returns the lowest of the teamID's allies or allyID's power as a table {teamID, power}. +local function lowestAlliedTeamPower(teamID, allyID) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) local lowestPower = math.huge local lowestTeamID = nil for id, power in pairs(teamPowers) do - if allyTeamNum == select(6, Spring.GetTeamInfo(id)) then + if allyID == select(6, Spring.GetTeamInfo(id)) and power > 0 then if power < lowestPower then lowestPower = power lowestTeamID = id @@ -298,7 +311,7 @@ local function averagePlayerTechGuesstimate() local teamCount = 0 for id, power in pairs(teamPowers) do - if isPlayerTeam(id) then + if isPlayerTeam(id) and power > 0 then totalPower = totalPower + power teamCount = teamCount + 1 end @@ -324,7 +337,7 @@ local function averageHumanTechGuesstimate() local teamCount = 0 for id, power in pairs(teamPowers) do - if humanTeams[id] then + if humanTeams[id] and power > 0 then totalPower = totalPower + power teamCount = teamCount + 1 end @@ -344,14 +357,14 @@ local function averageHumanTechGuesstimate() return techLevel end --- Compare average powers of all allied teams of the input teamID and return an estimated tech level number. -local function averageAlliedTechGuesstimate(teamID) - local allyTeamNum = select(6, Spring.GetTeamInfo(teamID)) +-- Compare average powers of all allied teams of the input teamID or allyID and return an estimated tech level number. +local function averageAlliedTechGuesstimate(teamID, allyID) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) local totalPower = 0 local teamCount = 0 for id, power in pairs(teamPowers) do - if allyTeamNum == select(6, Spring.GetTeamInfo(id)) then + if allyID == select(6, Spring.GetTeamInfo(id)) and power > 0 then totalPower = totalPower + power teamCount = teamCount + 1 end @@ -411,14 +424,14 @@ local function highestPlayerPeakPower() return {teamID = highestTeamID, power = highestPower} end --- Returns the highest power achieved by any non scavenger/raptor team on the same team as the input teamID as a table {teamID, power}. -local function highestAlliedPeakPower(teamID) - local allyTeamNum = select(6, Spring.GetTeamInfo(teamID)) +-- Returns the highest power achieved by any non scavenger/raptor team on the same team as the input teamID or allyID as a table {teamID, power}. +local function highestAlliedPeakPower(teamID, allyID) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) local highestPower = 0 local highestTeamID = nil for id, power in pairs(peakTeamPowers) do - if allyTeamNum == select(6, Spring.GetTeamInfo(id)) then + if allyID == select(6, Spring.GetTeamInfo(id)) then if power > highestPower then highestPower = power highestTeamID = id @@ -445,14 +458,14 @@ local function averageHumanPeakPower() return averagePower end --- Returns the average of all the peak powers achieved by allied teams of the input teamID as a number. -local function averageAlliedPeakPower(teamID) - local allyTeamNum = select(6, Spring.GetTeamInfo(teamID)) +-- Returns the average of all the peak powers achieved by allied teams of the input teamID or allyID as a number. +local function averageAlliedPeakPower(teamID, allyID) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) local totalPower = 0 local teamCount = 0 for id, power in pairs(peakTeamPowers) do - if allyTeamNum == select(6, Spring.GetTeamInfo(id)) then + if allyID == select(6, Spring.GetTeamInfo(id)) then totalPower = totalPower + power teamCount = teamCount + 1 end @@ -462,6 +475,110 @@ local function averageAlliedPeakPower(teamID) return averagePower end +-- Returns the ratio number of the input teamID compared to the average of all players. +local function teamComparedToAveragedPlayers(teamID) + local totalPower = 0 + local teamCount = 0 + local teamPower = teamPowers[teamID] + + for id, power in pairs(teamPowers) do + if playerTeams[id] and power > 0 then + totalPower = totalPower + power + teamCount = teamCount + 1 + end + end + + local averagePower = teamCount > 0 and totalPower / teamCount or 0 + + local ratio = averagePower > 0 and teamPower / averagePower or 0 + return ratio +end + +-- Returns boolean true if the input teamID is considered significantly more powerful by the API. Second argument allows user-defined ratio. +local function isTeamOverPowered(teamID, marginRatio) + marginRatio = marginRatio or teamIsOverPoweredRatio + local totalPower = 0 + local teamCount = 0 + local teamPower = teamPowers[teamID] + + for id, power in pairs(teamPowers) do + if playerTeams[id] and power > 0 then + totalPower = totalPower + power + teamCount = teamCount + 1 + end + end + + local averagePower = teamCount > 0 and totalPower / teamCount or 0 + + local ratio = averagePower > 0 and teamPower / averagePower or 0 + if marginRatio and ratio > marginRatio then + return true + else + return false + end +end + +-- Returns the ratio number of the input teamID's allies or allyID compared to the average of all player allies. +local function alliesComparedToAverage(teamID, allyID) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) + local allyPowers = {} + local allyCount = 0 + local totalPower = 0 + + for allyNumber, teams in pairs(playerAllies) do + local allyPower = 0 + for id, _ in pairs (teams) do + if playerTeams[id] then + local power = teamPowers[id] + allyPower = allyPower + power + end + end + if allyPower > 0 then + allyPowers[allyNumber] = allyPower + allyCount = allyCount + 1 + totalPower = totalPower + allyPower + end + end + + local averagePower = allyCount > 0 and totalPower / allyCount or 0 + + local ratio = averagePower > 0 and allyPowers[allyID] and allyPowers[allyID] / averagePower or 0 + return ratio +end + +-- Returns boolean true if the input teamID's allies or allyID is considered significantly more powerful by the API. Third argument allows user-defined ratio. +local function isAllyTeamWinning(teamID, allyID, marginRatio) + allyID = allyID or select(6, Spring.GetTeamInfo(teamID)) + marginRatio = marginRatio or alliesAreWinningRatio + local allyPowers = {} + local allyCount = 0 + local totalPower = 0 + + for allyNumber, teams in pairs(playerAllies) do + local allyPower = 0 + for id, _ in pairs (teams) do + if playerTeams[id] then + local power = teamPowers[id] + allyPower = allyPower + power + end + end + if allyPower > 0 then + allyPowers[allyNumber] = allyPower + allyCount = allyCount + 1 + totalPower = totalPower + allyPower + end + end + + local averagePower = allyCount > 0 and totalPower / allyCount or 0 + local ratio = averagePower > 0 and allyPowers[allyID] and allyPowers[allyID] / averagePower or 0 + if ratio > marginRatio then + return true + else + return false + end +end + + function gadget:Initialize() GG.PowerLib = {} GG.PowerLib["ScavengerTeam"] = scavengerTeam @@ -469,6 +586,7 @@ function gadget:Initialize() GG.PowerLib["AiTeams"] = aiTeams GG.PowerLib["NeutralTeam"] = neutralTeam GG.PowerLib["HumanTeams"] = humanTeams + GG.PowerLib["PlayerTeams"] = playerTeams GG.PowerLib["TeamPowers"] = teamPowers GG.PowerLib["PeakTeamPowers"] = peakTeamPowers GG.PowerLib["PowerThresholds"] = powerThresholds @@ -494,4 +612,8 @@ function gadget:Initialize() GG.PowerLib["HighestAlliedPeakPower"] = highestAlliedPeakPower GG.PowerLib["AverageHumanPeakPower"] = averageHumanPeakPower GG.PowerLib["AverageAlliedPeakPower"] = averageAlliedPeakPower -end + GG.PowerLib["TeamComparedToAveragedPlayers"] = teamComparedToAveragedPlayers + GG.PowerLib["IsTeamOverPowered"] = isTeamOverPowered + GG.PowerLib["AlliesComparedToAverage"] = alliesComparedToAverage + GG.PowerLib["IsAllyTeamWinning"] = isAllyTeamWinning +end \ No newline at end of file diff --git a/luarules/gadgets/gfx_unit_script_lights.lua b/luarules/gadgets/gfx_unit_script_lights.lua index edf1d5b061a..85a9f3ea8ad 100644 --- a/luarules/gadgets/gfx_unit_script_lights.lua +++ b/luarules/gadgets/gfx_unit_script_lights.lua @@ -1,6 +1,6 @@ function gadget:GetInfo() return { - name = "Unit Script Lights and Distortion", + name = "Unit Script Lights", desc = "Forwards Lighting Events to Widgets from COB Unit scripts", author = "Beherith", date = "Apr, 2008", @@ -18,24 +18,15 @@ if gadgetHandler:IsSyncedCode() then --Spring.Echo("Synced Gadget UnitScriptLight", unitID, unitDefID, lightIndex, param) SendToUnsynced("cob_UnitScriptLight", unitID, unitDefID, lightIndex, param) end - - local function UnitScriptDistortion(unitID, unitDefID, _, lightIndex, param) - --Spring.Echo("Synced Gadget UnitScriptDistortion", unitID, unitDefID, lightIndex, param) - SendToUnsynced("cob_UnitScriptDistortion", unitID, unitDefID, lightIndex, param) - end function gadget:Initialize() gadgetHandler:RegisterGlobal("UnitScriptLight", UnitScriptLight) - gadgetHandler:RegisterGlobal("UnitScriptDistortion", UnitScriptDistortion) end function gadget:Shutdown() gadgetHandler:DeregisterGlobal("UnitScriptLight") - gadgetHandler:DeregisterGlobal("UnitScriptDistortion") end - - else -- UNSYNCED local myTeamID = Spring.GetMyTeamID() @@ -63,26 +54,12 @@ else -- UNSYNCED end end - local scriptUnitScriptDistortion = Script.LuaUI.UnitScriptDistortion - - local function UnitScriptDistortion(_, unitID, unitDefID, lightIndex, param) - if not fullview and not CallAsTeam(myTeamID, spIsPosInLos, spGetUnitPosition(unitID)) then - return - end - --Spring.Echo("Unsynced UnitScriptDistortion", unitID, unitDefID, lightIndex, param) - if Script.LuaUI('UnitScriptDistortion') then - Script.LuaUI.UnitScriptDistortion(unitID, unitDefID, lightIndex, param) - end - end - function gadget:Initialize() gadgetHandler:AddSyncAction("cob_UnitScriptLight", UnitScriptLight) - gadgetHandler:AddSyncAction("cob_UnitScriptDistortion", UnitScriptDistortion) end function gadget:Shutdown() gadgetHandler:RemoveSyncAction("cob_UnitScriptLight") - gadgetHandler:RemoveSyncAction("cob_UnitScriptDistortion") end end diff --git a/luarules/gadgets/lups_cloak_fx.lua b/luarules/gadgets/lups_cloak_fx.lua new file mode 100644 index 00000000000..c27df652a6f --- /dev/null +++ b/luarules/gadgets/lups_cloak_fx.lua @@ -0,0 +1,205 @@ +if gadgetHandler:IsSyncedCode() then + return +end + +function gadget:GetInfo() + return { + name = "Lups Cloak FX", + desc = "", + author = "jK", + date = "Apr, 2008", + license = "GNU GPL, v2 or later", + layer = 10, + enabled = false, + } +end + +local CloakEffect = { + { class = 'UnitCloaker', options = { life = 50 } }, + { class = 'UnitJitter', options = { delay = 24, life = math.huge } }, + { class = 'Sound', options = { file = "cloak", volume = 0.9 } }, +} +local EnemyCloakEffect = { + { class = 'UnitCloaker', options = { life = 20 } }, + { class = 'Sound', options = { file = "cloak", volume = 0.9 } }, +} + +local DecloakEffect = { + { class = 'UnitCloaker', options = { inverse = true, life = 50 } }, + { class = 'UnitJitter', options = { life = 24 } }, + { class = 'Sound', options = { file = "cloak", volume = 0.9 } }, +} +local EnemyDecloakEffect = { + { class = 'UnitCloaker', options = { inverse = true, life = 60 } }, + { class = 'Sound', options = { file = "cloak", volume = 0.9 } }, +} + +local Lups +local particleIDs = {} +local initialized = false -- if LUPS isn't started yet, we try it once a gameframe later +local spec, fullview = Spring.GetSpectatingState() + +function gadget:UnitCloaked(unitID, unitDefID, teamID) + if not initialized then + return + end + + local allyTeamID = Spring.GetUnitAllyTeam(unitID) + local LocalAllyTeamID + local _, specFullView = Spring.GetSpectatingState() + if specFullView then + LocalAllyTeamID = allyTeamID + else + LocalAllyTeamID = Spring.GetLocalAllyTeamID() + end + + if particleIDs[unitID] then + for i = 1, #particleIDs[unitID] do + Lups.RemoveParticles(particleIDs[unitID][i]) + end + end + particleIDs[unitID] = {} + if LocalAllyTeamID == allyTeamID then + if Lups then + for i = 1, #CloakEffect do + local fx = CloakEffect[i] + fx.options.unit = unitID + fx.options.unitDefID = unitDefID + fx.options.team = teamID + fx.options.allyTeam = allyTeamID + particleIDs[unitID][i] = Lups.AddParticles(fx.class, fx.options) + end + end + else + if Lups then + for i = 1, #EnemyCloakEffect do + local fx = EnemyCloakEffect[i] + fx.options.unit = unitID + fx.options.unitDefID = unitDefID + fx.options.team = teamID + fx.options.allyTeam = allyTeamID + particleIDs[unitID][i] = Lups.AddParticles(fx.class, fx.options) + end + end + end + +end + +function gadget:UnitDecloaked(unitID, unitDefID, teamID) + if not Lups then + return + end + + local allyTeamID = Spring.GetUnitAllyTeam(unitID) + + local LocalAllyTeamID + local _, specFullView = Spring.GetSpectatingState() + if specFullView then + LocalAllyTeamID = allyTeamID + else + LocalAllyTeamID = Spring.GetLocalAllyTeamID() + end + + if particleIDs[unitID] then + for i = 1, #particleIDs[unitID] do + Lups.RemoveParticles(particleIDs[unitID][i]) + end + end + particleIDs[unitID] = {} + if LocalAllyTeamID == allyTeamID then + for i = 1, #DecloakEffect do + local fx = DecloakEffect[i] + fx.options.unit = unitID + fx.options.unitDefID = unitDefID + fx.options.team = teamID + fx.options.allyTeam = allyTeamID + particleIDs[unitID][i] = Lups.AddParticles(fx.class, fx.options) + end + else + for i = 1, #EnemyDecloakEffect do + local fx = EnemyDecloakEffect[i] + fx.options.unit = unitID + fx.options.unitDefID = unitDefID + fx.options.team = teamID + fx.options.allyTeam = allyTeamID + particleIDs[unitID][i] = Lups.AddParticles(fx.class, fx.options) + end + end +end + +function gadget:UnitGiven(unitID, unitDefID, teamID, oldTeamID) + if Spring.GetUnitIsCloaked(unitID) then + gadget:UnitCloaked(unitID, unitDefID, teamID) + end +end + +function gadget:UnitDestroyed(unitID, unitDefID) + if initialized and particleIDs[unitID] then + local effects = particleIDs[unitID] + for i = 1, #effects do + Lups.RemoveParticles(effects[i]) + end + particleIDs[unitID] = nil + end +end + +function gadget:PlayerChanged(playerID) + local prevFullview = fullview + spec, fullview = Spring.GetSpectatingState() + if playerID == Spring.GetMyPlayerID() then + if prevFullview ~= fullview then + gadgetHandler:UpdateCallIn("Update") -- this should reset the cloak fx + end + end +end + +local function ReinitializeUnitFX() + -- clear old FXs + for _, unitFxIDs in pairs(particleIDs) do + for i = 1, #unitFxIDs do + Lups.RemoveParticles(unitFxIDs[i]) + end + end + particleIDs = {} + + -- initialize effects for existing units + local allUnits = Spring.GetAllUnits(); + for i = 1, #allUnits do + local unitID = allUnits[i] + if Spring.GetUnitIsCloaked(unitID) then + local unitDefID = Spring.GetUnitDefID(unitID) + local teamID = Spring.GetUnitTeam(unitID) + gadget:UnitCloaked(unitID, unitDefID, teamID) + end + end + + gadgetHandler:RemoveCallIn("Update") +end + +function gadget:Update() + if Spring.GetGameFrame() < 1 then + return + end + + Lups = GG['Lups'] + if Lups then + initialized = true + else + return + end + + gadget.Update = ReinitializeUnitFX + gadgetHandler:UpdateCallIn("Update") +end + +function gadget:Shutdown() + + if initialized then + for _, unitFxIDs in pairs(particleIDs) do + for i = 1, #unitFxIDs do + Lups.RemoveParticles(unitFxIDs[i]) + end + end + particleIDs = {} + end +end diff --git a/luarules/gadgets/lups_flame_jitter.lua b/luarules/gadgets/lups_flame_jitter.lua new file mode 100644 index 00000000000..ad025b20121 --- /dev/null +++ b/luarules/gadgets/lups_flame_jitter.lua @@ -0,0 +1,233 @@ +function gadget:GetInfo() + return { + name = "Lups Flamethrower Jitter", + desc = "Flamethrower jitter FX with LUPS", + author = "jK", + date = "Apr, 2008", + license = "GNU GPL, v2 or later", + layer = 0, + enabled = true, + } +end + + +if gadgetHandler:IsSyncedCode() then + + local MIN_EFFECT_INTERVAL = 3 + + local SendToUnsynced = SendToUnsynced + + local thisGameFrame = 0 + local lastLupsSpawn = {} + + local function FlameShot(unitID, unitDefID, _, weapon) + lastLupsSpawn[unitID] = lastLupsSpawn[unitID] or {} + if ((lastLupsSpawn[unitID][weapon] or 0) - thisGameFrame) <= -MIN_EFFECT_INTERVAL then + lastLupsSpawn[unitID][weapon] = thisGameFrame + SendToUnsynced("flame_FlameShot", unitID, unitDefID, weapon) + end + end + + GG.LUPS = GG.LUPS or {} + GG.LUPS.FlameShot = FlameShot + + + function gadget:GameFrame(n) + thisGameFrame = n + SendToUnsynced("flame_GameFrame") + end + + function gadget:Initialize() + gadgetHandler:RegisterGlobal("FlameShot", FlameShot) + end + + function gadget:Shutdown() + gadgetHandler:DeregisterGlobal("FlameShot") + end + + +else -- UNSYNCED + + + local particleCnt = 1 + local particleList = {} + local myTeamID = Spring.GetMyTeamID() + local myPlayerID = Spring.GetMyPlayerID() + local mySpec, fullview = Spring.GetSpectatingState() + local spGetUnitPosition = Spring.GetUnitPosition + local spIsPosInLos = Spring.IsPosInLos + + local altflametex = {} + local flameWeaponParticleLife = {} + for weaponDefID, weaponDef in pairs(WeaponDefs) do + if weaponDef.type == "Flame" then + flameWeaponParticleLife[weaponDefID] = (weaponDef.range * weaponDef.duration) / 15 + if weaponDef.customParams.altflametex then + altflametex[weaponDefID] = weaponDef.customParams.altflametex + end + end + end + + local unitWeapons = {} + for unitDefID, unitDef in pairs(UnitDefs) do + local weapons = unitDef.weapons + if #weapons > 0 then + unitWeapons[unitDefID] = {} + for i, _ in pairs(weapons) do + unitWeapons[unitDefID][i] = weapons[i].weaponDef + end + end + end + + function gadget:PlayerChanged(playerID) + if playerID == myPlayerID then + myTeamID = Spring.GetMyTeamID() + mySpec, fullview = Spring.GetSpectatingState() + end + end + + local function partposfunc() + --return function() x=0;y=0;z=0;local __A=x*delay;local __B=y*delay;local __C=z*delay;return __A, __B, __C,nil end + end + + + local function FlameShot(_, unitID, unitDefID, weapon) + if Spring.IsUnitIcon(unitID) then + return + end + if not fullview and not CallAsTeam(myTeamID, spIsPosInLos, spGetUnitPosition(unitID)) then + return + end + + local posx, posy, posz, dirx, diry, dirz = Spring.GetUnitWeaponVectors(unitID, weapon) + local wd = unitWeapons[unitDefID][weapon] + local particleLife = flameWeaponParticleLife[wd] + + local speedx, speedy, speedz = Spring.GetUnitVelocity(unitID) + local partpos = "x*delay,y*delay,z*delay|x=" .. speedx .. ",y=" .. speedy .. ",z=" .. speedz + + local altFlameTexture = altflametex[wd] -- FIXME: more elegant solution when this is actually implemented (as in, one that doesn't rely on different unitdef) + + particleList[particleCnt] = { + class = 'JitterParticles2', + colormap = { { 1, 1, 1, 1 }, { 1, 1, 1, 1 } }, + count = 1, + life = particleLife*0.5, + lifeSpread = 6, + delaySpread = 3, + force = { 0, 0.6, 0 }, + --forceExp = 0.2, + + partpos = "jitterdefault", + pos = { posx, posy, posz }, + + emitVector = { dirx, diry, dirz }, + emitRotSpread = 2.5, + + speed = 6, + speedSpread = 1.5, + speedExp = 1.5, + + size = 35 + (particleLife*2), + sizeGrowth = 5, + + scale = 1.4, + strength = 1.3, + heat = 6, + } + particleCnt = particleCnt + 1 +--[[ + particleList[particleCnt] = { + class = 'SimpleParticles2', + colormap = { { 1, 1, 1, 0.01 }, + { 0.92, 0.89, 0.80, 0.01 }, + { 0.75, 0.55, 0.3, 0.02 }, + { 0, 0, 0, 0.01 } }, + count = 1, + life = particleLife*0.5, + lifeSpread = 6, + delaySpread = 3, + + force = { 0, 0.4, 0 }, + --forceExp = 0.2, + + partpos = partpos, + pos = { posx, posy, posz }, + + emitVector = { dirx, diry, dirz }, + emitRotSpread = 1.5, + + rotSpeed = 1, + rotSpread = 360, + rotExp = 9, + + speed = 8, + speedSpread = 1.5, + speedExp = -1.5, + + size = 7, + sizeGrowth = 1.5, + sizeExp = 0.7, + + --texture = "bitmaps/smoke/smoke06.tga", + texture = altFlameTexture and "bitmaps/GPL/flame_alt.tga" or "bitmaps/GPL/flame.tga", + } + particleCnt = particleCnt + 1 + + particleList[particleCnt] = { + class = 'SimpleParticles2', + colormap = { { 1, 1, 1, 0.01 }, { 0, 0, 0, 0.01 } }, + count = 4, + --delay = 20, + life = particleLife*0.6, + lifeSpread = 6, + delaySpread = 3, + + force = { 0, 0.4, 0 }, + --forceExp = 0.2, + + partpos = partpos, + pos = { posx, posy, posz }, + + emitVector = { dirx, diry, dirz }, + emitRotSpread = 1.5, + + rotSpeed = 1, + rotSpread = 360, + rotExp = 9, + + speed = 8, + speedSpread = 1.5, + speedExp = -1.5, + + size = 9, + sizeGrowth = 1.5, + sizeExp = 0.65, + + --texture = "bitmaps/smoke/smoke06.tga", + texture = altFlameTexture and "bitmaps/GPL/flame_alt.tga" or "bitmaps/GPL/flame.tga", + } + particleCnt = particleCnt + 1 + ]]-- + end + + local function GameFrame() + if particleCnt > 1 then + particleList.n = particleCnt + GG.Lups.AddParticlesArray(particleList) + particleList = {} + particleCnt = 1 + end + end + + function gadget:Initialize() + gl.DeleteTexture("bitmaps/GPL/flame.png") + gadgetHandler:AddSyncAction("flame_GameFrame", GameFrame) + gadgetHandler:AddSyncAction("flame_FlameShot", FlameShot) + end + + function gadget:Shutdown() + gadgetHandler:RemoveSyncAction("flame_FlameShot") + end + +end diff --git a/luarules/gadgets/lups_orb.lua b/luarules/gadgets/lups_orb.lua new file mode 100644 index 00000000000..0083375e784 --- /dev/null +++ b/luarules/gadgets/lups_orb.lua @@ -0,0 +1,352 @@ +function gadget:GetInfo() + return { + name = "Lups Orb", + desc = "Draws energy balls/orbs for fusions and some other selective units", + author = "", + date = "2020", + license = "GNU GPL, v2 or later", + layer = 1500, + enabled = true, + } +end + +if gadgetHandler:IsSyncedCode() then + return +end + +local defaults = { + layer = -35, + life = 600, + light = 2.5, + repeatEffect = true, +} + +local corafusShieldSphere = table.merge(defaults, { + pos = { 0, 60, 0 }, + size = 32, + light = 4, + --colormap1 = { {0.9, 0.9, 1, 0.75},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 0.75} }, + --colormap2 = { {0.2, 0.2, 1, 0.7},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.7} }, +}) + +local armafusShieldSphere = table.merge(defaults, { + pos = { 0, 60, 0 }, + size = 28, + light = 4.25, + --colormap1 = { {0.9, 0.9, 1, 0.75},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 0.75} }, + --colormap2 = { {0.2, 0.2, 1, 0.7},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.7} }, +}) + +local corfusShieldSphere = table.merge(defaults, { + pos = { 0, 51, 0 }, + size = 23, + light = 3.25, + --colormap1 = { {0.9, 0.9, 1, 0.75},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 0.75} }, + --colormap2 = { {0.2, 0.6, 0.2, 0.4},{0.2, 0.6, 0.2, 0.45},{0.2, 0.6, 0.2, 0.45},{0.2, 0.6, 0.2, 0.4} }, +}) + +local corgateShieldSphere = table.merge(defaults, { + pos = { 0, 42, 0 }, + size = 11, + colormap1 = { { 0.9, 0.9, 1, 0.75 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 0.75 } }, + colormap2 = { { 0.2, 0.6, 0.2, 0.4 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.4 } }, +}) + +local armjunoShieldSphere = table.merge(defaults, { + pos = { 0, 72, 0 }, + size = 13, + colormap1 = { { 0.9, 0.9, 1, 0.75 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 0.75 } }, + colormap2 = { { 0.8, 0.2, 0.2, 0.4 }, { 0.8, 0.2, 0.2, 0.45 }, { 0.9, 0.2, 0.2, 0.45 }, { 0.9, 0.1, 0.2, 0.4 } }, +}) + +local corjunoShieldSphere = table.merge(defaults, { + pos = { 0, 72, 0 }, + size = 13, + colormap1 = { { 0.9, 0.9, 1, 0.75 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 0.75 } }, + colormap2 = { { 0.8, 0.2, 0.2, 0.4 }, { 0.8, 0.2, 0.2, 0.45 }, { 0.9, 0.2, 0.2, 0.45 }, { 0.9, 0.1, 0.2, 0.4 } }, +}) + +local armgateShieldSphere = table.merge(defaults, { + pos = { 0, 23.5, -5 }, + size = 14.5, + colormap1 = { { 0.9, 0.9, 1, 0.75 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 0.75 } }, + colormap2 = { { 0.2, 0.6, 0.2, 0.4 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.4 } }, +}) + +local UnitEffects = { + ["armjuno"] = { +-- { class = 'ShieldSphere', options = armjunoShieldSphere }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 72, 0 }, size = 15.5, precision = 22, repeatEffect = true } }, + }, + ["corjuno"] = { +-- { class = 'ShieldSphere', options = corjunoShieldSphere }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 72, 0 }, size = 15.5, precision = 22, repeatEffect = true } }, + }, + + --// FUSIONS //-------------------------- + ["corafus"] = { +-- { class = 'ShieldSphere', options = corafusShieldSphere }, + { class = 'ShieldJitter', options = { layer = -16, life = math.huge, pos = { 0, 60, 0 }, size = 34.5, precision = 22, repeatEffect = true } }, + }, + ["corfus"] = { +-- { class = 'ShieldSphere', options = corfusShieldSphere }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 50, 0 }, size = 25.5, precision = 22, repeatEffect = true } }, + }, + ["armafus"] = { +-- { class = 'ShieldSphere', options = armafusShieldSphere }, + { class = 'ShieldJitter', options = { layer = -16, life = math.huge, pos = { 0, 60, 0 }, size = 30.5, precision = 22, repeatEffect = true } }, + }, + ["resourcecheat"] = { +-- { class = 'ShieldSphere', options = armafusShieldSphere }, + { class = 'ShieldJitter', options = { layer = -16, life = math.huge, pos = { 0, 60, 0 }, size = 30.5, precision = 22, repeatEffect = true } }, + }, + ["corgate"] = { + { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 42, 0 }, size = 13.5, precision = 22, repeatEffect = true } }, +-- { class = 'ShieldSphere', options = corgateShieldSphere }, + --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,42,0.0}, size=555, precision=0, strength= 0.001, repeatEffect=true}}, + --{class='ShieldJitter',options={life=math.huge, pos={0,42,0}, size=20, precision=2, repeatEffect=true}}, + }, + ["corfgate"] = { + { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 42, 0 }, size = 13.5, precision = 22, repeatEffect = true } }, +-- { class = 'ShieldSphere', options = corgateShieldSphere }, + --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,42,0.0}, size=555, precision=0, strength= 0.001, repeatEffect=true}}, + --{class='ShieldJitter',options={life=math.huge, pos={0,42,0}, size=20, precision=2, repeatEffect=true}}, + }, + ["armgate"] = { + { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 23.5, -5 }, size = 17, precision = 22, repeatEffect = true } }, +-- { class = 'ShieldSphere', options = armgateShieldSphere }, + --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,23.5,-5}, size=555, precision=0, strength=0.001, repeatEffect=true}}, + }, + ["armfgate"] = { + { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 25, 0 }, size = 17, precision = 22, repeatEffect = true } }, +-- { class = 'ShieldSphere', options = table.merge(armgateShieldSphere, { pos = { 0, 25, 0 } }) }, + --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,25,0}, size=555, precision=0, strength= 0.001, repeatEffect=true}}, + }, + ["lootboxbronze"] = { +-- { class = 'ShieldSphere', options = table.merge(corfusShieldSphere, {pos = { 0, 34, 0 }, size = 10} ) }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 34, 0 }, size = 10.5, precision = 22, repeatEffect = true } }, + }, + ["lootboxsilver"] = { +-- { class = 'ShieldSphere', options = table.merge(corfusShieldSphere, {pos = { 0, 52, 0 }, size = 15} ) }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 52, 0 }, size = 15.5, precision = 22, repeatEffect = true } }, + }, + ["lootboxgold"] = { +-- { class = 'ShieldSphere', options = table.merge(corfusShieldSphere, {pos = { 0, 69, 0 }, size = 20} ) }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 69, 0 }, size = 20.5, precision = 22, repeatEffect = true } }, + }, + ["lootboxplatinum"] = { +-- { class = 'ShieldSphere', options = table.merge(corfusShieldSphere, {pos = { 0, 87, 0 }, size = 25} ) }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 87, 0 }, size = 25.5, precision = 22, repeatEffect = true } }, + }, + +} + +local scavEffects = {} +if UnitDefNames['armcom_scav'] then + for k, effect in pairs(UnitEffects) do + if UnitDefNames[k .. '_scav'] then + scavEffects[k .. '_scav'] = effect + if scavEffects[k .. '_scav'].options then + if scavEffects[k .. '_scav'].options.color then + scavEffects[k .. '_scav'].options.color = { 0.92, 0.32, 1.0 } + end + if scavEffects[k .. '_scav'].options.colormap then + scavEffects[k .. '_scav'].options.colormap = { { 0.92, 0.32, 1.0 } } + end + if scavEffects[k .. '_scav'].options.colormap1 then + scavEffects[k .. '_scav'].options.colormap1 = { { 0.92, 0.32, 1.0 } } + end + if scavEffects[k .. '_scav'].options.colormap2 then + scavEffects[k .. '_scav'].options.colormap2 = { { 0.92, 0.32, 1.0 } } + end + end + end + end + for k, effect in pairs(scavEffects) do + UnitEffects[k] = effect + end + scavEffects = nil +end + +local newEffects = {} +for unitname, effect in pairs(UnitEffects) do + newEffects[UnitDefNames[unitname].id] = effect +end +UnitEffects = newEffects +newEffects = nil + +local myTeamID = Spring.GetMyTeamID() +local myAllyTeamID = Spring.GetMyAllyTeamID() +local myPlayerID = Spring.GetMyPlayerID() +local mySpec, fullview = Spring.GetSpectatingState() + +local spGetUnitRulesParam = Spring.GetUnitRulesParam +local spGetUnitIsBeingBuilt = Spring.GetUnitIsBeingBuilt +local spGetUnitIsActive = Spring.GetUnitIsActive +local IsPosInLos = Spring.IsPosInLos +local GetUnitPosition = Spring.GetUnitPosition + +local particleIDs = {} +local Lups, LupsAddFX + +local spGetTeamColor = Spring.GetTeamColor +local teamColorKeys = {} +local teams = Spring.GetTeamList() +for i = 1, #teams do + local r, g, b = spGetTeamColor(teams[i]) + teamColorKeys[teams[i]] = r..'_'..g..'_'..b +end +local updateTimer = 0 + + +local function ClearFxs(unitID) + if particleIDs[unitID] then + for _, fxID in ipairs(particleIDs[unitID]) do + Lups.RemoveParticles(fxID) + end + particleIDs[unitID] = nil + end +end + +local function AddFxs(unitID, fxID) + if not particleIDs[unitID] then + particleIDs[unitID] = {} + end + particleIDs[unitID][#particleIDs[unitID] + 1] = fxID +end + +local function addUnit(unitID, unitDefID) + if not fullview and select(6, Spring.GetTeamInfo(Spring.GetUnitTeam(unitID))) ~= myAllyTeamID and not CallAsTeam(myTeamID, IsPosInLos, GetUnitPosition(unitID)) then + return + end + + for _, fx in ipairs(UnitEffects[unitDefID]) do + if fx.options.onActive == true and spGetUnitIsActive(unitID) == nil then + break + else + fx.options.unit = unitID + fx.options.under_construction = spGetUnitIsBeingBuilt(unitID) + AddFxs(unitID, LupsAddFX(fx.class, fx.options)) + fx.options.unit = nil + end + end +end + +function gadget:UnitFinished(unitID, unitDefID, unitTeam) + if UnitEffects[unitDefID] then + addUnit(unitID, unitDefID) + end +end + +function gadget:UnitDestroyed(unitID, unitDefID) + if UnitEffects[unitDefID] then + ClearFxs(unitID) + end +end + +function gadget:UnitGiven(unitID, unitDefID, newTeam, oldTeam) + if not spGetUnitIsBeingBuilt(unitID) then + gadget:UnitDestroyed(unitID, unitDefID, oldTeam) + gadget:UnitFinished(unitID, unitDefID, newTeam) + end +end + +function gadget:UnitTaken(unitID, unitDefID, oldTeam, newTeam) + if not spGetUnitIsBeingBuilt(unitID) then + gadget:UnitDestroyed(unitID, unitDefID, oldTeam) + gadget:UnitFinished(unitID, unitDefID, newTeam) + end +end + +function gadget:UnitEnteredLos(unitID, unitTeam, allyTeam, unitDefID) + if UnitEffects[unitDefID] and (fullview or CallAsTeam(myTeamID, IsPosInLos, GetUnitPosition(unitID))) then + if not particleIDs[unitID] then + for _, fx in ipairs(UnitEffects[unitDefID]) do + if fx.options.onActive == true and spGetUnitIsActive(unitID) == nil then + break + elseif not select(3, Spring.GetUnitIsStunned(unitID)) then -- not inbuild + fx.options.unit = unitID + fx.options.under_construction = spGetUnitIsBeingBuilt(unitID) + AddFxs(unitID, LupsAddFX(fx.class, fx.options)) + fx.options.unit = nil + end + end + end + end +end + +function gadget:UnitLeftLos(unitID, unitTeam, allyTeam, unitDefID) + if UnitEffects[unitDefID] and not fullview and not CallAsTeam(myTeamID, IsPosInLos, GetUnitPosition(unitID)) then + ClearFxs(unitID) + end +end + +local function CheckForExistingUnits() + local allUnits = Spring.GetAllUnits() + for i = 1, #allUnits do + local unitID = allUnits[i] + local unitDefID = Spring.GetUnitDefID(unitID) + if UnitEffects[unitDefID] and not spGetUnitIsBeingBuilt(unitID) then + local _, _, inBuild = Spring.GetUnitIsStunned(unitID) + if not inBuild then + addUnit(unitID, unitDefID) + end + end + end +end + +local function removeParticles() + for _, unitFxIDs in pairs(particleIDs) do + for _, fxID in ipairs(unitFxIDs) do + Lups.RemoveParticles(fxID) + end + end + particleIDs = {} +end + +function gadget:PlayerChanged(playerID) + if playerID == myPlayerID then + myTeamID = Spring.GetMyTeamID() + myAllyTeamID = Spring.GetMyAllyTeamID() + if fullview ~= select(2, Spring.GetSpectatingState()) then + mySpec, fullview = Spring.GetSpectatingState() + removeParticles() + CheckForExistingUnits() + end + end +end + +function gadget:Initialize() + if not Lups then + Lups = GG['Lups'] + LupsAddFX = Lups.AddParticles + end + CheckForExistingUnits() +end + +function gadget:Shutdown() + removeParticles() +end + +local function CheckTeamColors() + local detectedChanges = false + for i = 1, #teams do + local r, g, b = spGetTeamColor(teams[i]) + if teamColorKeys[teams[i]] ~= r..'_'..g..'_'..b then + teamColorKeys[teams[i]] = r..'_'..g..'_'..b + detectedChanges = true + end + end + if detectedChanges then + gadget:Shutdown() + gadget:Initialize() + end +end + +function gadget:Update() + updateTimer = updateTimer + Spring.GetLastUpdateSeconds() + if updateTimer > 1.5 then + updateTimer = 0 + CheckTeamColors() + end +end diff --git a/luarules/gadgets/lups_shield.lua b/luarules/gadgets/lups_shield.lua index a80ba843577..cec3318acac 100644 --- a/luarules/gadgets/lups_shield.lua +++ b/luarules/gadgets/lups_shield.lua @@ -23,6 +23,7 @@ end local GAMESPEED = Game.gameSpeed local SHIELDARMORID = 4 local SHIELDARMORIDALT = 0 +local SHIELDONRULESPARAMINDEX = 531313 -- not a string due to perfmaxxing ----------------------------------------------------------------- -- Small vector math lib @@ -228,12 +229,19 @@ local function UpdateVisibility(unitID, unitData, unitVisible, forceUpdate) unitVisible = GetVisibleSearch(ux, uz, unitData.search) end - local unitIsActive = Spring.GetUnitIsActive(unitID) + local unitIsActive = Spring.GetUnitIsActive(unitID) if unitIsActive ~= unitData.isActive then forceUpdate = true unitData.isActive = unitIsActive end + local shieldEnabled = Spring.GetUnitRulesParam (unitID, SHIELDONRULESPARAMINDEX) + if shieldEnabled == 1 then + unitVisible = true + elseif shieldEnabled == 0 then + unitVisible = false + end + if unitVisible == unitData.unitVisible and not forceUpdate then return end diff --git a/luarules/gadgets/lups_shockwaves.lua b/luarules/gadgets/lups_shockwaves.lua new file mode 100644 index 00000000000..c3f651f09f8 --- /dev/null +++ b/luarules/gadgets/lups_shockwaves.lua @@ -0,0 +1,98 @@ +function gadget:GetInfo() + return { + name = "Shockwaves", + desc = "", + author = "jK", + date = "Jan. 2008", + license = "GNU GPL, v2 or later", + layer = 0, + enabled = true + } +end + +if (gadgetHandler:IsSyncedCode()) then + ----------------------------------- + -- Synced + ----------------------------------- + + local hasShockwave = {} -- other gadgets can do Script.SetWatchWeapon and it is a global setting + local wantedList = {} + + --// find weapons which cause a shockwave + for i=1,#WeaponDefs do + local wd = WeaponDefs[i] + local customParams = wd.customParams or {} + + if (not customParams.lups_noshockwave) then + local speed = 1 + local life = 1 + local normalShockwave = (wd.damageAreaOfEffect>62 and not wd.paralyzer and not customParams.disarmdamageonly) + + if customParams.lups_explodespeed then + speed = wd.customParams.lups_explodespeed + normalShockwave = true + end + + if customParams.lups_explodelife then + life = wd.customParams.lups_explodelife + normalShockwave = true + end + + if normalShockwave then + hasShockwave[wd.id] = { + life = 8*life, + speed = speed, + growth = wd.damageAreaOfEffect/11*speed + } + Script.SetWatchExplosion(wd.id,true) + wantedList[#wantedList + 1] = wd.id + elseif (wd.type == "DGun") then + hasShockwave[wd.id] = {DGun = true} + Script.SetWatchExplosion(wd.id,true) + wantedList[#wantedList + 1] = wd.id + end + end + end + + function gadget:Explosion_GetWantedWeaponDef() + return wantedList + end + + function gadget:Explosion(weaponID, px, py, pz, ownerID) + local shockwave = hasShockwave[weaponID] + if shockwave then + if shockwave.DGun then + SendToUnsynced("lups_shockwave", px, py, pz, 5, 7.5, 0.11, true) + elseif shockwave.special == 1 then + SendToUnsynced("lups_shockwave", px, py, pz, 5, 25, 0.1, true) + else + SendToUnsynced("lups_shockwave", px, py, pz, shockwave.growth, shockwave.life) + end + end + return false + end + +else + ----------------------------------- + -- Unsynced + ----------------------------------- + + local function SpawnShockwave(_,px,py,pz, growth, life, strength, desintergrator) + local Lups = GG['Lups'] + + if (desintergrator) then + Lups.AddParticles('SphereDistortion',{pos={px,py,pz}, life=life, strength=strength, growth=growth}) + else + Lups.AddParticles('ShockWave',{pos={px,py,pz}, growth=growth, life=life}) + end + end + + function gadget:Initialize() + gadgetHandler:AddSyncAction("lups_shockwave", SpawnShockwave) + end + + function gadget:Shutdown() + gadgetHandler.RemoveSyncAction("lups_shockwave") + end + +end \ No newline at end of file diff --git a/luarules/gadgets/map_lava.lua b/luarules/gadgets/map_lava.lua index 5505b57a5b7..c8928c3d324 100644 --- a/luarules/gadgets/map_lava.lua +++ b/luarules/gadgets/map_lava.lua @@ -1,6 +1,6 @@ function gadget:GetInfo() return { - name = "Map Lava Gadget 2.4", + name = "Map Lava Gadget 2.5", desc = "lava", author = "knorke, Beherith, The_Yak, Anarchid, Kloot, Gajop, ivand, Damgam", date = "Feb 2011, Nov 2013, 2022!", @@ -10,44 +10,62 @@ function gadget:GetInfo() } end -tideRhym = {} -tideIndex = 1 -tideContinueFrame = 0 -lavaGrow = 0 -gameframe = 0 - -voidWaterMap = false -local success, mapinfo = pcall(VFS.Include,"mapinfo.lua") -- load mapinfo.lua confs -if success or mapinfo ~= nil then - voidWaterMap = mapinfo.voidwater -end +local lava = Spring.Lava +local lavaMap = lava.isLavaMap --_G.Game.mapSizeX = Game.mapSizeX --_G.Game.mapSizeY = Game.mapSizeY -function gadget:Initialize() - if lavaMap == false then - gadgetHandler:RemoveGadget(self) - return - end - _G.frame = 0 - _G.lavaLevel = lavaLevel - _G.lavaGrow = lavaGrow - Spring.SetGameRulesParam("lavaLevel", -99999) -end +if gadgetHandler:IsSyncedCode() then -function addTideRhym (targetLevel, speed, remainTime) - local newTide = {} - newTide.targetLevel = targetLevel - newTide.speed = speed - newTide.remainTime = remainTime - table.insert (tideRhym, newTide) -end + local tideIndex = 1 + local tideContinueFrame = 0 + local gameframe = 0 + local tideRhym = {} + + local lavaLevel = lava.level + local lavaGrow = lava.grow + + -- damage is specified in health lost per second, damage is applied every DAMAGE_RATE frames + local DAMAGE_RATE = 10 -- frames + local lavaDamage = lava.damage * (DAMAGE_RATE / Game.gameSpeed) + local lavaDamageFeatures = lava.damageFeatures + if lavaDamageFeatures then + if not tonumber(lavaDamageFeatures) then + lavaDamageFeatures = 0.1 + end + lavaDamageFeatures = lavaDamageFeatures * (DAMAGE_RATE / Game.gameSpeed) + end -if gadgetHandler:IsSyncedCode() then + -- ceg effects + local lavaEffectBurst = lava.effectBurst + local lavaEffectDamage = lava.effectDamage + + -- speedups + local spAddUnitDamage = Spring.AddUnitDamage + local spDestroyFeature = Spring.DestroyFeature + local spGetAllUnits = Spring.GetAllUnits + local spGetFeatureDefID = Spring.GetFeatureDefID + local spGetFeaturePosition = Spring.GetFeaturePosition + local spGetFeatureResources = Spring.GetFeatureResources + local spGetUnitBasePosition = Spring.GetUnitBasePosition + local spGetUnitDefID = Spring.GetUnitDefID + local spSetFeatureResources = Spring.SetFeatureResources + local spSpawnCEG = Spring.SpawnCEG + local random = math.random + local min = math.min + + local function addTideRhym (targetLevel, speed, remainTime) + local newTide = {} + newTide.targetLevel = targetLevel + newTide.speed = speed + newTide.remainTime = remainTime + table.insert (tideRhym, newTide) + end - isLavaGadget = "synced" - VFS.Include("luarules/configs/lavaConfig.lua") + for _, rhym in ipairs(lava.tideRhym) do + addTideRhym(unpack(rhym)) + end function updateLava() if (lavaGrow < 0 and lavaLevel < tideRhym[tideIndex].targetLevel) @@ -76,13 +94,22 @@ if gadgetHandler:IsSyncedCode() then return math.min(math.max(x, low), high) end + function gadget:Initialize() + if lavaMap == false then + gadgetHandler:RemoveGadget(self) + return + end + _G.lavaLevel = lavaLevel + _G.lavaGrow = lavaGrow + Spring.SetGameRulesParam("lavaLevel", -99999) + end + function gadget:GameFrame (f) gameframe = f _G.lavaLevel = lavaLevel+math.sin(f/30)*0.5 --_G.lavaLevel = lavaLevel + clamp(-0.95, math.sin(f / 30), 0.95) * 0.5 --clamp to avoid jittering when sin(x) is around +-1 - _G.frame = f - if f % 10 == 0 then + if f % DAMAGE_RATE == 0 then lavaDeathCheck() end @@ -90,45 +117,45 @@ if gadgetHandler:IsSyncedCode() then lavaLevel = lavaLevel+lavaGrow Spring.SetGameRulesParam("lavaLevel", lavaLevel) - local x = math.random(1,Game.mapX*512) - local z = math.random(1,Game.mapY*512) - local y = Spring.GetGroundHeight(x,z) - if nolavaburstcegs == false then - if y < lavaLevel then - --This should be in config file to customize effects on lava plane - if f % 5 == 0 then - Spring.SpawnCEG("lavasplash", x, lavaLevel+5, z) - local r = math.random(1,2) - if r == 1 then - Spring.PlaySoundFile("lavaburst1", math.random(80,100)/100, x, y, z, 'sfx') - elseif r == 2 then - Spring.PlaySoundFile("lavaburst2", math.random(80,100)/100, x, y, z, 'sfx') + -- burst and sound effects + if f % 5 == 0 then + local mapSizeX = Game.mapX * 512 + local mapSizeY = Game.mapY * 512 + -- bursts + if lavaEffectBurst then + local x = random(1, mapSizeX) + local z = random(1, mapSizeY) + local y = Spring.GetGroundHeight(x, z) + + if y < lavaLevel then + spSpawnCEG(lavaEffectBurst, x, lavaLevel+5, z) + + local lavaEffectBurstSounds = lava.effectBurstSounds + if lavaEffectBurstSounds and #lavaEffectBurstSounds > 0 then + local soundIndex = random(1, #lavaEffectBurstSounds) + local sound = lavaEffectBurstSounds[soundIndex] + Spring.PlaySoundFile(sound[1], random(sound[2], sound[3])/100, x, y, z, 'sfx') end end end - end - if f % 5 == 0 then + -- ambient sounds + local lavaAmbientSounds = lava.ambientSounds + if lavaAmbientSounds and #lavaAmbientSounds > 0 then for i = 1,10 do - local x = math.random(1,Game.mapX*512) - local z = math.random(1,Game.mapY*512) - local y = Spring.GetGroundHeight(x,z) - if math.random(1,3) == 1 and y < lavaLevel then - local r = math.random(1,5) - if r == 1 then - Spring.PlaySoundFile("lavabubbleshort1", math.random(25,65)/100, x, y, z, 'sfx') - elseif r == 2 then - Spring.PlaySoundFile("lavabubbleshort2", math.random(25,65)/100, x, y, z, 'sfx') - elseif r == 3 then - Spring.PlaySoundFile("lavarumbleshort1", math.random(20,40)/100, x, y, z, 'sfx') - elseif r == 4 then - Spring.PlaySoundFile("lavarumbleshort2", math.random(20,40)/100, x, y, z, 'sfx') - elseif r == 5 then - Spring.PlaySoundFile("lavarumbleshort3", math.random(20,40)/100, x, y, z, 'sfx') + if random(1, 3) == 1 then + local x = random(1, mapSizeX) + local z = random(1, mapSizeY) + local y = Spring.GetGroundHeight(x,z) + if y < lavaLevel then + local soundIndex = random(1, #lavaAmbientSounds) + local sound = lavaAmbientSounds[soundIndex] + Spring.PlaySoundFile(sound[1], random(sound[2], sound[3])/100, x, y, z, 'sfx') + break end - break end end end + end -- new to use notif system -- if lavaGrow then @@ -152,44 +179,37 @@ if gadgetHandler:IsSyncedCode() then end function lavaDeathCheck () - local all_units = Spring.GetAllUnits() - for i in pairs(all_units) do - local UnitDefID = Spring.GetUnitDefID(all_units[i]) + local gaiaTeamID = Spring.GetGaiaTeamID() + local all_units = spGetAllUnits() + for _, unitID in ipairs(all_units) do + local UnitDefID = spGetUnitDefID(unitID) if not UnitDefs[UnitDefID].canFly then - x,y,z = Spring.GetUnitBasePosition(all_units[i]) - if y ~= nil then - if y and y < lavaLevel then - --This should be in config file to change damage + effects/cegs - -- local health, maxhealth = Spring.GetUnitHealth(all_units[i]) - -- Spring.AddUnitDamage (all_units[i], health - maxhealth*0.033, 0, Spring.GetGaiaTeamID(), 1) - Spring.AddUnitDamage (all_units[i], lavaDamage/3, 0, Spring.GetGaiaTeamID(), 1) - --Spring.DestroyUnit (all_units[i], true, false, Spring.GetGaiaTeamID()) - Spring.SpawnCEG("lavadamage", x, y+5, z) + x,y,z = spGetUnitBasePosition(unitID) + if y and y < lavaLevel then + spAddUnitDamage (unitID, lavaDamage, 0, gaiaTeamID, 1) + spSpawnCEG(lavaEffectDamage, x, y+5, z) + end + end + end + if lavaDamageFeatures then + local all_features = Spring.GetAllFeatures() + for _, featureID in ipairs(all_features) do + local FeatureDefID = spGetFeatureDefID(featureID) + if not FeatureDefs[FeatureDefID].geoThermal then + x,y,z = spGetFeaturePosition(featureID) + if (y and y < lavaLevel) then + local _, maxMetal, _, maxEnergy, reclaimLeft = spGetFeatureResources (featureID) + reclaimLeft = reclaimLeft - lavaDamageFeatures + if reclaimLeft <= 0 then + spDestroyFeature(featureID) + else + spSetFeatureResources(featureID, maxMetal*reclaimLeft, maxEnergy*reclaimLeft, nil, reclaimLeft) + end + spSpawnCEG(lavaEffectDamage, x, y+5, z) end end end end - -- Below is custom reclaim/damage module for wrecks/features - -- local all_features = Spring.GetAllFeatures() - -- for i in pairs(all_features) do - -- local FeatureDefID = Spring.GetFeatureDefID(all_features[i]) - -- if not FeatureDefs[FeatureDefID].geoThermal then - -- x,y,z = Spring.GetFeaturePosition(all_features[i]) - -- if (y ~= nil) then - -- if (y and y < lavaLevel) then - -- local reclaimLeft = select(5, Spring.GetFeatureResources (all_features[i])) - -- if reclaimLeft <= 0 then - -- Spring.DestroyFeature(all_features[i]) - -- Spring.SpawnCEG("lavadamage", x, y+5, z) - -- else - -- local newReclaimLeft = reclaimLeft - 0.033 - -- Spring.SetFeatureReclaim (all_features[i], newReclaimLeft) - -- Spring.SpawnCEG("lavadamage", x, y+5, z) - -- end - -- end - -- end - -- end - -- end end local DAMAGE_EXTSOURCE_WATER = -5 @@ -211,35 +231,32 @@ if gadgetHandler:IsSyncedCode() then else -- UNSYCNED - isLavaGadget = "unsynced" - VFS.Include("luarules/configs/lavaConfig.lua") - local texturesamplingmode = '' -- ':l:' causes MASSIVE load on zoom out and downsampling textures! - local lavaDiffuseEmit = texturesamplingmode .. lavaDiffuseEmitTex -- pack emissiveness into alpha channel (this is also used as heat for distortion) - local lavaNormalHeight = texturesamplingmode .. lavaNormalHeightTex -- pack height into normals alpha + local lavaDiffuseEmit = texturesamplingmode .. lava.diffuseEmitTex -- pack emissiveness into alpha channel (this is also used as heat for distortion) + local lavaNormalHeight = texturesamplingmode .. lava.normalHeightTex -- pack height into normals alpha local lavaDistortion = texturesamplingmode .. "LuaUI/images/lavadistortion.png" local lavaShader local lavaPlaneVAO - local lavalevel = lavaLevel local foglightShader - local foglightVAO - local numfoglightVerts - local foglightenabled = lavaFogEnabled - local fogheightabovelava = lavaFogHeight + local foglightenabled = lava.fogEnabled + local fogheightabovelava = lava.fogHeight local allowDeferredMapRendering = (Spring.GetConfigInt("AllowDeferredMapRendering") == 1) -- map depth buffer is required for the foglight shader pass - local tideamplitude = lavaTideamplitude - local tideperiod = lavaTideperiod - local lavatidelevel = lavaLevel + local tideamplitude = lava.tideAmplitude + local tideperiod = lava.tidePeriod + local lavatidelevel = lava.level local heatdistortx = 0 local heatdistortz = 0 + local smoothFPS = 15 local elmosPerSquare = 256 -- The resolution of the lava + + local autoreload = false -- set to true to reload the shader every time it is edited local luaShaderDir = "LuaUI/Widgets/Include/" local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") VFS.Include(luaShaderDir.."instancevbotable.lua") -- we are only gonna use the plane maker func of this @@ -248,389 +265,75 @@ else -- UNSYCNED local unifiedShaderConfig = { -- for lavaplane HEIGHTOFFSET = 2.0, -- how many elmos above the 'actual' lava height we should render, to avoid ROAM clipping artifacts - COASTWIDTH = lavaCoastWidth, -- how wide the coast of the lava should be - WORLDUVSCALE = lavaUVscale, -- How many times to tile the lava texture across the entire map - COASTCOLOR = lavaCoastColor, -- the color of the lava coast - SPECULAREXPONENT = lavaSpecularExp, -- the specular exponent of the lava plane + COASTWIDTH = lava.coastWidth, -- how wide the coast of the lava should be + WORLDUVSCALE = lava.uvScale, -- How many times to tile the lava texture across the entire map + COASTCOLOR = lava.coastColor, -- the color of the lava coast + SPECULAREXPONENT = lava.specularExp, -- the specular exponent of the lava plane SPECULARSTRENGTH = 1.0, -- The peak brightness of specular highlights - LOSDARKNESS = lavaLOSdarkness, -- how much to darken the out-of-los areas of the lava plane - SHADOWSTRENGTH = lavaShadowStrength, -- how much light a shadowed fragment can recieve + LOSDARKNESS = lava.losDarkness, -- how much to darken the out-of-los areas of the lava plane + SHADOWSTRENGTH = lava.shadowStrength, -- how much light a shadowed fragment can recieve OUTOFMAPHEIGHT = -100, -- what value to use when we are sampling the heightmap outside of the true bounds - SWIRLFREQUENCY = lavaSwirlFreq, -- How fast the main lava texture swirls around default 0.025 - SWIRLAMPLITUDE = lavaSwirlAmp, -- How much the main lava texture is swirled around default 0.003 - PARALLAXDEPTH = lavaParallaxDepth, -- set to >0 to enable - PARALLAXOFFSET = lavaParallaxOffset, -- center of the parallax plane, from 0.0 (up) to 1.0 (down) + SWIRLFREQUENCY = lava.swirlFreq, -- How fast the main lava texture swirls around default 0.025 + SWIRLAMPLITUDE = lava.swirlAmp, -- How much the main lava texture is swirled around default 0.003 + PARALLAXDEPTH = lava.parallaxDepth, -- set to >0 to enable + PARALLAXOFFSET = lava.parallaxOffset, -- center of the parallax plane, from 0.0 (up) to 1.0 (down) GLOBALROTATEFREQUENCY = 0.0001, -- how fast the whole lava plane shifts around GLOBALROTATEAMPLIDUE = 0.05, -- how big the radius of the circle we rotate around is -- for foglight: FOGHEIGHTABOVELAVA = fogheightabovelava, -- how much higher above the lava the fog light plane is - FOGCOLOR = lavaFogColor, -- the color of the fog light - FOGFACTOR = lavaFogFactor, -- how dense the fog is - EXTRALIGHTCOAST = lavaCoastLightBoost, -- how much extra brightness should coastal areas get - FOGLIGHTDISTORTION = lavaFogDistortion, -- lower numbers are higher distortion amounts - FOGABOVELAVA = lavaFogAbove, -- the multiplier for how much fog should be above lava fragments, ~0.2 means the lava itself gets hardly any fog, while 2.0 would mean the lava gets a lot of extra fog + FOGCOLOR = lava.fogColor, -- the color of the fog light + FOGFACTOR = lava.fogFactor, -- how dense the fog is + EXTRALIGHTCOAST = lava.coastLightBoost, -- how much extra brightness should coastal areas get + FOGLIGHTDISTORTION = lava.fogDistortion, -- lower numbers are higher distortion amounts + FOGABOVELAVA = lava.fogAbove, -- the multiplier for how much fog should be above lava fragments, ~0.2 means the lava itself gets hardly any fog, while 2.0 would mean the lava gets a lot of extra fog -- for both: - SWIZZLECOLORS = 'fragColor.rgb = (fragColor.rgb * '..lavaColorCorrection..').rgb;', -- yes you can swap around and weight color channels, right after final color, default is 'rgb' - } - - - local lavaVSSrc = [[ - #version 420 - #extension GL_ARB_uniform_buffer_object : require - #extension GL_ARB_shader_storage_buffer_object : require - #extension GL_ARB_shading_language_420pack: require - #line 10000 - layout (location = 0) in vec2 planePos; - - uniform float lavaHeight; - - out DataVS { - vec4 worldPos; - vec4 worldUV; - float inboundsness; - vec4 randpervertex; - }; - //__DEFINES__ - //__ENGINEUNIFORMBUFFERDEFS__ - - #line 11000 - - vec2 inverseMapSize = 1.0 / mapSize.xy; - - float rand(vec2 co){ // a pretty crappy random function - return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); - } - - void main() { - // mapSize.xy is the actual map size, - //place the vertices into the world: - worldPos.y = lavaHeight; - worldPos.w = 1.0; - worldPos.xz = (1.5 * planePos +0.5) * mapSize.xy; - - // pass the world-space UVs out - float mapratio = mapSize.y / mapSize.x; - worldUV.xy = (1.5 * planePos +0.5); - worldUV.y *= mapratio; - - float gametime = (timeInfo.x + timeInfo.w) * SWIRLFREQUENCY; - - randpervertex = vec4(rand(worldPos.xz), rand(worldPos.xz * vec2(17.876234, 9.283)), rand(worldPos.xz + gametime + 2.0), rand(worldPos.xz + gametime + 3.0)); - worldUV.zw = sin(randpervertex.xy + gametime * (0.5 + randpervertex.xy)); - - // global rotatemove, has 2 params, globalrotateamplitude, globalrotatefrequency - // Spin the whole texture around slowly - float worldRotTime = (timeInfo.x + timeInfo.w) ; - worldUV.xy += vec2( sin(worldRotTime * GLOBALROTATEFREQUENCY), cos(worldRotTime * GLOBALROTATEFREQUENCY)) * GLOBALROTATEAMPLIDUE; - - // -- MAP OUT OF BOUNDS - vec2 mymin = min(worldPos.xz, mapSize.xy - worldPos.xz) * inverseMapSize; - inboundsness = min(mymin.x, mymin.y); - - // Assign world position: - gl_Position = cameraViewProj * worldPos; - } - ]] - - local lavaFSSrc = [[ - #version 330 - #extension GL_ARB_uniform_buffer_object : require - #extension GL_ARB_shading_language_420pack: require - - #line 20000 - - uniform float lavaHeight; - uniform float heatdistortx; - uniform float heatdistortz; - - uniform sampler2D heightmapTex; - uniform sampler2D lavaDiffuseEmit; - uniform sampler2D lavaNormalHeight; - uniform sampler2D lavaDistortion; - uniform sampler2DShadow shadowTex; - uniform sampler2D infoTex; - - in DataVS { - vec4 worldPos; - vec4 worldUV; - float inboundsness; - vec4 randpervertex; - }; - - //__ENGINEUNIFORMBUFFERDEFS__ - //__DEFINES__ - - vec2 inverseMapSize = 1.0 / mapSize.xy; - - float heightAtWorldPos(vec2 w){ - // Some texel magic to make the heightmap tex perfectly align: - const vec2 heightmaptexel = vec2(8.0, 8.0); - w += vec2(-8.0, -8.0) * (w * inverseMapSize) + vec2(4.0, 4.0) ; - - vec2 uvhm = clamp(w, heightmaptexel, mapSize.xy - heightmaptexel); - uvhm = uvhm * inverseMapSize; - - return texture(heightmapTex, uvhm, 0.0).x; - } - - out vec4 fragColor; - - #line 22000 - - - void main() { - - vec4 camPos = cameraViewInv[3]; - vec3 worldtocam = camPos.xyz - worldPos.xyz; - - // Sample emissive as heat indicator here for later displacement - vec4 nodiffuseEmit = texture(lavaDiffuseEmit, worldUV.xy * WORLDUVSCALE ); - - vec2 rotatearoundvertices = worldUV.zw * SWIRLAMPLITUDE; - - float localheight = OUTOFMAPHEIGHT ; - if (inboundsness > 0) - localheight = heightAtWorldPos(worldPos.xz); - - if (localheight > lavaHeight - HEIGHTOFFSET ) discard; - - // Calculate how far the fragment is from the coast - float coastfactor = clamp((localheight-lavaHeight + COASTWIDTH + HEIGHTOFFSET) * (1.0 / COASTWIDTH), 0.0, 1.0); - - // this is ramp function that ramps up for 90% of the coast, then ramps down at the last 10% of coastwidth - if (coastfactor > 0.90) - {coastfactor = 9*( 1.0 - coastfactor); - coastfactor = pow(coastfactor/0.9, 1.0); - }else{ - coastfactor = pow(coastfactor/0.9, 3.0); - } - - // Sample shadow map for shadow factor: - vec4 shadowVertexPos = shadowView * vec4(worldPos.xyz,1.0); - shadowVertexPos.xy += vec2(0.5); - float shadow = clamp(textureProj(shadowTex, shadowVertexPos), 0.0, 1.0); - - // Sample LOS texture for LOS, and scale it into a sane range - vec2 losUV = clamp(worldPos.xz, vec2(0.0), mapSize.xy ) / mapSize.zw; - float losTexSample = dot(vec3(0.33), texture(infoTex, losUV).rgb) ; // lostex is PO2 - losTexSample = clamp(losTexSample * 4.0 - 1.0, LOSDARKNESS, 1.0); - if (inboundsness < 0.0) losTexSample = 1.0; - - // We shift the distortion texture camera-upwards according to the uniforms that got passed in - vec2 camshift = vec2(heatdistortx, heatdistortz) * 0.001; - vec4 distortionTexture = texture(lavaDistortion, (worldUV.xy + camshift) * 45.2) ; - - vec2 distortion = distortionTexture.xy * 0.2 * 0.02; - distortion.xy *= clamp(nodiffuseEmit.a * 0.5 + coastfactor, 0.2, 2.0); - - vec2 diffuseNormalUVs = worldUV.xy * WORLDUVSCALE + distortion.xy + rotatearoundvertices; - vec4 normalHeight = texture(lavaNormalHeight, diffuseNormalUVs); - - // Perform optional parallax mapping - #if (PARALLAXDEPTH > 0 ) - vec3 viewvec = normalize(worldtocam * -1.0); - float pdepth = PARALLAXDEPTH * (PARALLAXOFFSET - normalHeight.a ) * (1.0 - coastfactor); - diffuseNormalUVs += pdepth * viewvec.xz * 0.002; - normalHeight = texture(lavaNormalHeight, diffuseNormalUVs); - #endif - - vec4 diffuseEmit = texture(lavaDiffuseEmit , diffuseNormalUVs); - - fragColor.rgba = diffuseEmit; - - // Calculate lighting based on normal map - vec3 fragNormal = (normalHeight.xzy * 2.0 -1.0); - fragNormal.z = -1 * fragNormal.z; // for some goddamned reason Z(G) is inverted again - fragNormal = normalize(fragNormal); - float lightamount = clamp(dot(sunDir.xyz, fragNormal), 0.2, 1.0) * max(0.5,shadow); - fragColor.rgb *= lightamount; - - fragColor.rgb += COASTCOLOR * coastfactor; - - // Specular Color - vec3 reflvect = reflect(normalize(-1.0 * sunDir.xyz), normalize(fragNormal)); - float specular = clamp(pow(dot(normalize(worldtocam), normalize(reflvect)), SPECULAREXPONENT), 0.0, SPECULARSTRENGTH) * shadow; - fragColor.rgb += fragColor.rgb * specular; - - fragColor.rgb += fragColor.rgb * (diffuseEmit.a * distortion.y * 700.0); - - fragColor.rgb *= losTexSample; - - // some debugging stuff: - //fragColor.rgb = fragNormal.xzy; - //fragColor.rgb = vec3(losTexSample); - //fragColor.rgb = vec3(shadow); - //fragColor.rgb = distortionTexture.rgb ; - //fragColor.rg = worldUV.zw ; - //fragColor.rgba *= vec4(fract(hmap*0.05)); - //fragColor.rgb = vec3(randpervertex.w * 0.5 + 0.5); - //fragColor.rgb = fract(4*vec3(coastfactor)); - fragColor.a = 1.0; - fragColor.a = clamp( inboundsness * 2.0 +2.0, 0.0, 1.0); - SWIZZLECOLORS + SWIZZLECOLORS = 'fragColor.rgb = (fragColor.rgb * '..lava.colorCorrection..').rgb;', -- yes you can swap around and weight color channels, right after final color, default is 'rgb' } - ]] - - - local fogLightVSSrc = [[ - #version 420 - #extension GL_ARB_uniform_buffer_object : require - #extension GL_ARB_shader_storage_buffer_object : require - #extension GL_ARB_shading_language_420pack: require - #line 10000 - layout (location = 0) in vec2 planePos; - - uniform float lavaHeight; - - out DataVS { - vec4 worldPos; - vec4 worldUV; - float inboundsness; - noperspective vec2 v_screenUV; - }; - //__DEFINES__ - //__ENGINEUNIFORMBUFFERDEFS__ - - #line 11000 - - #define SNORM2NORM(value) (value * 0.5 + 0.5) - vec2 inverseMapSize = 1.0 / mapSize.xy; - float rand(vec2 co){ // a pretty crappy random function - return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); + local lavaVSSrcPath = "shaders/GLSL/lava/lava.vert.glsl" + local lavaFSSrcPath = "shaders/GLSL/lava/lava.frag.glsl" + local fogLightVSSrcPath = "shaders/GLSL/lava/lava_fog_light.vert.glsl" + local fogLightFSSrcPath = "shaders/GLSL/lava/lava_fog_light.frag.glsl" + + local lavaShaderSourceCache = { + vssrcpath = lavaVSSrcPath, + fssrcpath = lavaFSSrcPath, + shaderName = "Lava Surface Shader GL4", + uniformInt = { + heightmapTex = 0, + lavaDiffuseEmit = 1, + lavaNormalHeight = 2, + lavaDistortion = 3, + shadowTex = 4, + infoTex = 5, + }, + uniformFloat = { + lavaHeight = 1, + heatdistortx = 1, + heatdistortz = 1, + }, + shaderConfig = unifiedShaderConfig, } - void main() { - // mapSize.xy is the actual map size, - //place the vertices into the world: - worldPos.y = lavaHeight; - worldPos.w = 1.0; - worldPos.xz = (1.5 * planePos +0.5) * mapSize.xy; - - // pass the world-space UVs out - float mapratio = mapSize.y / mapSize.x; - worldUV.xy = (1.5 * planePos +0.5); - worldUV.y *= mapratio; - - float gametime = (timeInfo.x + timeInfo.w) * 0.006666; - - vec4 randpervertex = vec4(rand(worldPos.xz), rand(worldPos.xz * vec2(17.876234, 9.283)), rand(worldPos.xz + gametime + 2.0), rand(worldPos.xz + gametime + 3.0)); - worldUV.zw = sin(randpervertex.xy + gametime * (0.5 + randpervertex.xy)); - - // -- MAP OUT OF BOUNDS - vec2 mymin = min(worldPos.xz, mapSize.xy - worldPos.xz) * inverseMapSize; - inboundsness = min(mymin.x, mymin.y); - - // Assign world position: - gl_Position = cameraViewProj * worldPos; - v_screenUV = SNORM2NORM(gl_Position.xy / gl_Position.w); + local fogLightShaderSourceCache = { + vssrcpath = fogLightVSSrcPath, + fssrcpath = fogLightFSSrcPath, + shaderName = "Lava Light Shader GL4", + uniformInt = { + mapDepths = 0, + modelDepths = 1, + lavaDistortion = 2, + }, + uniformFloat = { + lavaHeight = 1, + heatdistortx = 1, + heatdistortz = 1, + }, + shaderConfig = unifiedShaderConfig, } - ]] - - local foglightFSSrc = [[ - #version 330 - #extension GL_ARB_uniform_buffer_object : require - #extension GL_ARB_shading_language_420pack: require - - #line 20000 - - uniform float lavaHeight; - uniform float heatdistortx; - uniform float heatdistortz; - - uniform sampler2D mapDepths; - uniform sampler2D modelDepths; - uniform sampler2D lavaDistortion; - //uniform sampler2D mapNormals; - //uniform sampler2D modelNormals; - - in DataVS { - vec4 worldPos; - vec4 worldUV; - float inboundsness; - noperspective vec2 v_screenUV; - }; - - //__ENGINEUNIFORMBUFFERDEFS__ - //__DEFINES__ - - vec2 inverseMapSize = 1.0 / mapSize.xy; - - out vec4 fragColor; - - #line 22000 - void main() { - - vec4 camPos = cameraViewInv[3]; - - // We shift the distortion texture camera-upwards according to the uniforms that got passed in - vec2 camshift = vec2(heatdistortx, heatdistortz) * 0.01; - - //Get the fragment depth - // note that WE CANT GO LOWER THAN THE ACTUAL LAVA LEVEL! - - vec2 screenUV = clamp(v_screenUV, 1.0/(viewGeometry.xy), 1.0 - 1.0/ (viewGeometry.xy)); - - // Sample the depth buffers, and choose whichever is closer to the screen - float mapdepth = texture(mapDepths, screenUV).x; - float modeldepth = texture(modelDepths, screenUV).x; - mapdepth = min(mapdepth, modeldepth); - - // the W weight factor here is incorrect, as it comes from the depth buffers, and not the fragments own depth. - - // Convert to normalized device coordinates, and calculate inverse view projection - vec4 mapWorldPos = vec4( vec3(screenUV.xy * 2.0 - 1.0, mapdepth), 1.0); - mapWorldPos = cameraViewProjInv * mapWorldPos; - mapWorldPos.xyz = mapWorldPos.xyz/ mapWorldPos.w; // YAAAY this works! - float trueFragmentHeight = mapWorldPos.y; - - float fogAboveLava = 1.0; - - // clip mapWorldPos according to true lava height - if (mapWorldPos.y< lavaHeight - FOGHEIGHTABOVELAVA - HEIGHTOFFSET) { - // we need to make a vector from cam to fogplane position - vec3 camtofogplane = mapWorldPos.xyz - camPos.xyz; - - // and scale it to make it - camtofogplane = FOGHEIGHTABOVELAVA * camtofogplane /abs(camtofogplane.y); - mapWorldPos.xyz = worldPos.xyz + camtofogplane; - fogAboveLava = FOGABOVELAVA; - } - - // Calculate how long the vector from top of foglightplane to lava or world pos actually is - float actualfogdepth = length(mapWorldPos.xyz - worldPos.xyz) ; - float fogAmount = 1.0 - exp2(- FOGFACTOR * FOGFACTOR * actualfogdepth * 0.5); - fogAmount *= fogAboveLava; - - // sample the distortiontexture according to camera shift and scale it down - vec4 distortionTexture = texture(lavaDistortion, (worldUV.xy * 22.0 + camshift)) ; - float fogdistort = (FOGLIGHTDISTORTION + distortionTexture.x + distortionTexture.y)/ FOGLIGHTDISTORTION ; - - - // apply some distortion to the fog - fogAmount *= fogdistort; - - - // lets add some extra brigtness near the coasts, by finding the distance of the lavaplane to the coast - float disttocoast = abs(trueFragmentHeight- (lavaHeight - FOGHEIGHTABOVELAVA - HEIGHTOFFSET)); - - float extralightcoast = clamp(1.0 - disttocoast * (1.0 / COASTWIDTH), 0.0, 1.0); - extralightcoast = pow(extralightcoast, 3.0) * EXTRALIGHTCOAST; - - fogAmount += extralightcoast; - - fragColor.rgb = FOGCOLOR; - fragColor.a = fogAmount; - - // fade out the foglightplane if it is far out of bounds - fragColor.a *= clamp( inboundsness * 2.0 +2.0, 0.0, 1.0); - SWIZZLECOLORS - } - ]] - local myPlayerID = tostring(Spring.GetMyPlayerID()) function gadget:GameFrame(f) @@ -682,54 +385,17 @@ else -- UNSYCNED lavaPlaneVAO:AttachIndexBuffer(indexBuffer) - local engineUniformBufferDefs = LuaShader.GetEngineUniformBufferDefs() - lavaVSSrc = lavaVSSrc:gsub("//__ENGINEUNIFORMBUFFERDEFS__", engineUniformBufferDefs) - lavaFSSrc = lavaFSSrc:gsub("//__ENGINEUNIFORMBUFFERDEFS__", engineUniformBufferDefs) - - lavaShader = LuaShader({ - vertex = lavaVSSrc:gsub("//__DEFINES__", LuaShader.CreateShaderDefinesString(unifiedShaderConfig)), - fragment = lavaFSSrc:gsub("//__DEFINES__", LuaShader.CreateShaderDefinesString(unifiedShaderConfig)), - uniformInt = { - heightmapTex = 0, - lavaDiffuseEmit = 1, - lavaNormalHeight = 2, - lavaDistortion = 3, - shadowTex = 4, - infoTex = 5, - }, - uniformFloat = { - lavaHeight = 1, - heatdistortx = 1, - heatdistortz = 1, - }, - }, "Lava Shader") - - - fogLightVSSrc = fogLightVSSrc:gsub("//__ENGINEUNIFORMBUFFERDEFS__", engineUniformBufferDefs) - foglightFSSrc = foglightFSSrc:gsub("//__ENGINEUNIFORMBUFFERDEFS__", engineUniformBufferDefs) - foglightShader = LuaShader({ - vertex = fogLightVSSrc:gsub("//__DEFINES__", LuaShader.CreateShaderDefinesString(unifiedShaderConfig)), - fragment = foglightFSSrc:gsub("//__DEFINES__", LuaShader.CreateShaderDefinesString(unifiedShaderConfig)), - uniformInt = { - mapDepths = 0, - modelDepths = 1, - lavaDistortion = 2, - }, - uniformFloat = { - lavaHeight = 1, - heatdistortx = 1, - heatdistortz = 1, - }, - }, "FogLight shader ") - local shaderCompiled = lavaShader:Initialize() - if not shaderCompiled then + lavaShader = LuaShader.CheckShaderUpdates(lavaShaderSourceCache) + + if not lavaShader then Spring.Echo("Failed to compile Lava Shader") gadgetHandler:RemoveGadget() return end - shaderCompiled = foglightShader:Initialize() - if not shaderCompiled then + foglightShader = LuaShader.CheckShaderUpdates(fogLightShaderSourceCache) + + if not foglightShader then Spring.Echo("Failed to compile foglightShader") gadgetHandler:RemoveGadget() return @@ -742,12 +408,17 @@ else -- UNSYCNED if not isPaused then local camX, camY, camZ = Spring.GetCameraDirection() local camvlength = math.sqrt(camX*camX + camZ *camZ + 0.01) - local fps = math.max(Spring.GetFPS(), 15) - heatdistortx = heatdistortx - camX / (camvlength * fps) - heatdistortz = heatdistortz - camZ / (camvlength * fps) + smoothFPS = 0.9 * smoothFPS + 0.1 * math.max(Spring.GetFPS(), 15) + heatdistortx = heatdistortx - camX / (camvlength * smoothFPS) + heatdistortz = heatdistortz - camZ / (camvlength * smoothFPS) end --Spring.Echo(camX, camZ, heatdistortx, heatdistortz,gameSpeed, isPaused) + if autoreload then + lavaShader = LuaShader.CheckShaderUpdates(lavaShaderSourceCache) or lavaShader + foglightShader = LuaShader.CheckShaderUpdates(fogLightShaderSourceCache) or foglightShader + end + lavaShader:Activate() lavaShader:SetUniform("lavaHeight",lavatidelevel) lavaShader:SetUniform("heatdistortx",heatdistortx) diff --git a/luarules/gadgets/map_voidground.lua b/luarules/gadgets/map_voidground.lua index 64cc13f90c7..2038bc71884 100644 --- a/luarules/gadgets/map_voidground.lua +++ b/luarules/gadgets/map_voidground.lua @@ -37,7 +37,7 @@ end local spGetUnitDefID = Spring.GetUnitDefID local spGetUnitPosition = Spring.GetUnitPosition local spGetFeaturePosition = Spring.GetFeaturePosition -local mapx = Game.mapSizeZ +local mapx = Game.mapSizeX local mapz = Game.mapSizeZ local gaiaTeamID = Spring.GetGaiaTeamID() diff --git a/luarules/gadgets/pve_nuke_controller.lua b/luarules/gadgets/pve_nuke_controller.lua index 4bd10acac12..48aa3301a52 100644 --- a/luarules/gadgets/pve_nuke_controller.lua +++ b/luarules/gadgets/pve_nuke_controller.lua @@ -47,7 +47,17 @@ for i = 1, #teams do end local nukeDefs = {} -for _, unitDefName in ipairs({"raptor_turret_meteor_t4_v1", "corsilo_scav", "armsilo_scav", "legsilo_scav", "corjuno_scav", "armjuno_scav", "legstarfall_scav"}) do +for _, unitDefName in ipairs({ + "raptor_turret_meteor_t4_v1", + "corsilo_scav", + "armsilo_scav", + "legsilo_scav", + "corjuno_scav", + "armjuno_scav", + "legstarfall_scav", + "armseadragon_scav", + "cordesolator_scav", + }) do if UnitDefNames[unitDefName] then nukeDefs[UnitDefNames[unitDefName].id] = true end diff --git a/luarules/gadgets/unit_air_attacksafetydistance.lua b/luarules/gadgets/unit_air_attacksafetydistance.lua new file mode 100644 index 00000000000..4b22b358606 --- /dev/null +++ b/luarules/gadgets/unit_air_attacksafetydistance.lua @@ -0,0 +1,49 @@ +function gadget:GetInfo() + return { + name = "Air AttackSafetyDistance", + desc = "sets attackSafetyDistance for fighters", + author = "Doo, Floris", + date = "Sept 19th 2017", + license = "GNU GPL, v2 or later", + layer = 0, + enabled = true + } +end + +--[[ + Wiki: "attackSafetyDistance" movetypedata: Fighters abort dive toward target if within attackSafetyDistance and + try to climb back to normal altitude while still moving toward target. It's disabled by default. Set to half of + the minimum weapon range to avoid collisions, enemy fire, AOE damage. If set to greater than the weapon range, + the unit will fly over the target like a bomber. +]]-- + +if not gadgetHandler:IsSyncedCode() then + return +end + +local isFighter = {} +for udid, ud in pairs(UnitDefs) do + if ud.canFly and ud.customParams.fighter then + isFighter[udid] = true + end +end + +function gadget:Initialize() + gadgetHandler:RegisterAllowCommand(CMD.ANY) + for ct, unitID in pairs(Spring.GetAllUnits()) do + gadget:UnitCreated(unitID, Spring.GetUnitDefID(unitID)) + end +end + +function gadget:UnitCreated(unitID, unitDefID) + if isFighter[unitDefID] then + local curMoveCtrl = Spring.MoveCtrl.IsEnabled(unitID) + if curMoveCtrl then + Spring.MoveCtrl.Disable(unitID) + end + Spring.MoveCtrl.SetAirMoveTypeData(unitID, "attackSafetyDistance", 300) + if curMoveCtrl then + Spring.MoveCtrl.Enable(unitID) + end + end +end diff --git a/luarules/gadgets/unit_airunitsturnradius.lua b/luarules/gadgets/unit_airunitsturnradius.lua index c56b161f766..9f1bce4a65d 100644 --- a/luarules/gadgets/unit_airunitsturnradius.lua +++ b/luarules/gadgets/unit_airunitsturnradius.lua @@ -14,6 +14,8 @@ if not gadgetHandler:IsSyncedCode() then return end +local attackTurnRadius = 500 + local CMD_ATTACK = CMD.ATTACK local spGetUnitCurrentCommand = Spring.GetUnitCurrentCommand local spGetUnitMoveTypeData = Spring.GetUnitMoveTypeData @@ -22,26 +24,21 @@ local spMoveCtrlIsEnabled = Spring.MoveCtrl.IsEnabled local spMoveCtrlDisable = Spring.MoveCtrl.Disable local spMoveCtrlSetAirMoveTypeData = Spring.MoveCtrl.SetAirMoveTypeData -local unitTurnRadius = {} local Bombers = {} -local isFighter = {} -local isBomber = {} -local isBomb = {} -for id, wDef in pairs(WeaponDefs) do - if wDef.type == "AircraftBomb" then - isBomb[id] = true - end -end +local bomberTurnRadius = {} for udid, ud in pairs(UnitDefs) do - if ud.customParams.fighter then - isFighter[udid] = true - end - if (ud["weapons"] and ud["weapons"][1] and isBomb[ud["weapons"][1].weaponDef] == true) or (string.find(ud.name, 'armlance') or string.find(ud.name, 'cortitan')) then - isBomber[udid] = true + if ud.canFly then + if not ud.hoverAttack and ud.weapons and ud.weapons[1] then + for i = 1, #ud.weapons do + local wDef = WeaponDefs[ud.weapons[i].weaponDef] + if wDef.type == "AircraftBomb" or wDef.type == "TorpedoLauncher" then + bomberTurnRadius[udid] = ud.turnRadius + break + end + end + end end - unitTurnRadius[udid] = ud.turnRadius end -isBomb = nil function gadget:Initialize() gadgetHandler:RegisterAllowCommand(CMD.ANY) @@ -51,19 +48,9 @@ function gadget:Initialize() end function gadget:UnitCreated(unitID, unitDefID) - if isBomber[unitDefID] and spGetUnitMoveTypeData(unitID).turnRadius then + if bomberTurnRadius[unitDefID] then Bombers[unitID] = unitDefID end - if isFighter[unitDefID] then - local curMoveCtrl = spMoveCtrlIsEnabled(unitID) - if curMoveCtrl then - spMoveCtrlDisable(unitID) - end - spMoveCtrlSetAirMoveTypeData(unitID, "attackSafetyDistance", 300) - if curMoveCtrl then - spMoveCtrlEnable(unitID) - end - end end function gadget:UnitDestroyed(unitID) @@ -78,24 +65,13 @@ function gadget:UnitDamaged(unitID, unitDefID, unitTeam, damage, paralyzer) end local function processNextCmd(unitID, unitDefID, cmdID) - if not cmdID or cmdID == CMD_ATTACK then - local curMoveCtrl = spMoveCtrlIsEnabled(unitID) - if curMoveCtrl then - spMoveCtrlDisable(unitID) - end - spMoveCtrlSetAirMoveTypeData(unitID, "turnRadius", 500) - if curMoveCtrl then - spMoveCtrlEnable(unitID) - end - else--if spGetUnitMoveTypeData(unitID).turnRadius then -- checking this on UnitCreated now, cause this is expensive - local curMoveCtrl = spMoveCtrlIsEnabled(unitID) - if curMoveCtrl then - spMoveCtrlDisable(unitID) - end - spMoveCtrlSetAirMoveTypeData(unitID, "turnRadius", unitTurnRadius[unitDefID]) - if curMoveCtrl then - spMoveCtrlEnable(unitID) - end + local curMoveCtrl = spMoveCtrlIsEnabled(unitID) + if curMoveCtrl then + spMoveCtrlDisable(unitID) + end + spMoveCtrlSetAirMoveTypeData(unitID, "turnRadius", (not cmdID or cmdID == CMD_ATTACK) and attackTurnRadius or bomberTurnRadius[unitDefID]) + if curMoveCtrl then + spMoveCtrlEnable(unitID) end end diff --git a/luarules/gadgets/unit_attributes.lua b/luarules/gadgets/unit_attributes.lua index 5945b670437..38e52a8cea6 100644 --- a/luarules/gadgets/unit_attributes.lua +++ b/luarules/gadgets/unit_attributes.lua @@ -381,7 +381,6 @@ local function UpdateMovementSpeed(unitID, unitDefID, speedFactor, turnAccelFact maxAcc = state.origMaxAcc *maxAccelerationFactor, --(speedFactor > 0.001 and speedFactor or 0.001) } spSetAirMoveTypeData (unitID, attribute) - spSetAirMoveTypeData (unitID, attribute) elseif state.movetype == 1 then local attribute = { maxSpeed = state.origSpeed *speedFactor, diff --git a/luarules/gadgets/unit_builder_priority.lua b/luarules/gadgets/unit_builder_priority.lua index 69c5324f025..ee1506582b6 100644 --- a/luarules/gadgets/unit_builder_priority.lua +++ b/luarules/gadgets/unit_builder_priority.lua @@ -90,6 +90,7 @@ local deadTeamList = {} local unitBuildSpeed = {} local canPassive = {} -- canPassive[unitDefID] = nil / true local cost = {} -- cost[unitDefID] = { metal, energy, buildTime } +local suspendBuilderPriority for unitDefID, unitDef in pairs(UnitDefs) do -- All builders can have their build speeds changed via lua @@ -112,7 +113,7 @@ local isTeamSavingMetal = function(_) return false end function gadget:Initialize() gadgetHandler:RegisterAllowCommand(CMD_PRIORITY) updateTeamList() - + for _, teamID in ipairs(teamList) do -- Distribute initial update frames. They will drift on their own afterward. local gameFrame = Spring.GetGameFrame() @@ -122,6 +123,7 @@ function gadget:Initialize() -- Reset team tracking for constructors and their build priority settings. canBuild[teamID] = canBuild[teamID] or {} passiveCons[teamID] = passiveCons[teamID] or {} + Spring.SetTeamRulesParam(teamID, "suspendbuilderpriority", 0) end for _,unitID in pairs(Spring.GetAllUnits()) do @@ -198,7 +200,7 @@ function gadget:AllowCommand(unitID, unitDefID, teamID, cmdID, cmdParams, cmdOpt -- track which cons are set to passive if canPassive[unitDefID] then local cmdIdx = spFindUnitCmdDesc(unitID, CMD_PRIORITY) - if cmdIdx then + if cmdIdx and suspendBuilderPriority == 0 then local cmdDesc = spGetUnitCmdDescs(unitID, cmdIdx, cmdIdx)[1] cmdDesc.params[1] = cmdParams[1] spEditUnitCmdDesc(unitID, cmdIdx, cmdDesc) @@ -223,6 +225,7 @@ local function UpdatePassiveBuilders(teamID, interval) local nonPassiveConsTotalExpenseMetal = 0 local passiveConsExpense = {} local passiveTeamCons = passiveCons[teamID] + suspendBuilderPriority = Spring.GetTeamRulesParam(teamID, "suspendbuilderpriority") for builderID in pairs(canBuild[teamID]) do local builtUnit = spGetUnitIsBuilding(builderID) @@ -285,14 +288,14 @@ local function UpdatePassiveBuilders(teamID, interval) -- turn this passive builder on/off as appropriate local wantedBuildSpeed = wouldStall and 0 or realBuildSpeed[builderID] - if currentBuildSpeed[builderID] ~= wantedBuildSpeed then + if currentBuildSpeed[builderID] ~= wantedBuildSpeed and suspendBuilderPriority == 0 then spSetUnitBuildSpeed(builderID, wantedBuildSpeed) currentBuildSpeed[builderID] = wantedBuildSpeed end -- override buildTargetOwners build speeds for a single frame; -- let them build at a tiny rate to prevent nanoframes from possibly decaying - if (buildTargetOwners[builderID] and currentBuildSpeed[builderID] == 0) then + if (buildTargetOwners[builderID] and currentBuildSpeed[builderID] == 0 and suspendBuilderPriority == 0) then spSetUnitBuildSpeed(builderID, 0.001) --(*) end end @@ -321,7 +324,8 @@ function gadget:GameFrame(n) for builderID, builtUnit in pairs(buildTargetOwners) do if spValidUnitID(builderID) and spGetUnitIsBuilding(builderID) == builtUnit then local teamID = spGetUnitTeam(builderID) - if not isTeamSavingMetal(teamID) then + suspendBuilderPriority = Spring.GetTeamRulesParam (teamID, "suspendbuilderpriority") + if not isTeamSavingMetal(teamID) and suspendBuilderPriority == 0 then spSetUnitBuildSpeed(builderID, currentBuildSpeed[builderID]) end end diff --git a/luarules/gadgets/unit_carrier_spawner.lua b/luarules/gadgets/unit_carrier_spawner.lua index 67a71609b80..1f6fa139e78 100644 --- a/luarules/gadgets/unit_carrier_spawner.lua +++ b/luarules/gadgets/unit_carrier_spawner.lua @@ -691,7 +691,7 @@ function gadget:UnitCmdDone(unitID, unitDefID, unitTeam, cmdID, cmdTag, cmdParam if carrierMetaList[carrierUnitID].subUnitsList[unitID].dronetype == "bomber" and (cmdID == CMD.MOVE or cmdID == CMD.ATTACK) and carrierMetaList[carrierUnitID].subUnitsList[unitID].bomberStage > 0 then if carrierMetaList[carrierUnitID].subUnitsList[unitID].bomberStage == 1 then --Spring.Echo(carrierMetaList[carrierUnitID].subUnitsList[unitID].originalmaxrudder) - --Spring.MoveCtrl.SetAirMoveTypeData(unitID, {maxRudder = carrierMetaList[carrierUnitID].subUnitsList[unitID].originalmaxrudder}) + --Spring.MoveCtrl.SetAirMoveTypeData(unitID, "maxRudder", carrierMetaList[carrierUnitID].subUnitsList[unitID].originalmaxrudder) end if (not carrierMetaList[carrierUnitID].docking) and carrierMetaList[carrierUnitID].subUnitsList[unitID].bomberStage >= 4 + carrierMetaList[carrierUnitID].dronebombingruns then carrierMetaList[carrierUnitID].subUnitsList[unitID].bomberStage = 0 @@ -723,7 +723,7 @@ function gadget:ProjectileCreated(proID, proOwnerID, proWeaponDefID) if carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].dronetype == "bomber" and carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].bomberStage > 0 then local currentTime = spGetGameSeconds() if ((currentTime - carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].lastBombing) >= 4) then - Spring.MoveCtrl.SetAirMoveTypeData(proOwnerID, {maxRudder = carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].originalmaxrudder}) + Spring.MoveCtrl.SetAirMoveTypeData(proOwnerID, "maxRudder", carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].originalmaxrudder) carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].bomberStage = carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].bomberStage + 1 carrierMetaList[carrierUnitID].subUnitsList[proOwnerID].lastBombing = spGetGameSeconds() end @@ -1125,7 +1125,7 @@ local function UpdateCarrier(carrierID, carrierMetaData, frame) end local mt = Spring.GetUnitMoveTypeData(subUnitID) --Spring.Echo("movetype: ", mt.name) - Spring.MoveCtrl.SetAirMoveTypeData(subUnitID, {maxRudder = 0.05}) + Spring.MoveCtrl.SetAirMoveTypeData(subUnitID, "maxRudder", 0.05) carrierMetaData.dronebombertimer = spGetGameSeconds() carrierMetaData.subUnitsList[subUnitID].bomberStage = 1 end diff --git a/luarules/gadgets/unit_cheat_no_waste.lua b/luarules/gadgets/unit_cheat_no_waste.lua new file mode 100644 index 00000000000..1c8f9209538 --- /dev/null +++ b/luarules/gadgets/unit_cheat_no_waste.lua @@ -0,0 +1,166 @@ +function gadget:GetInfo() + return { + name = "Cheat No Waste", + desc = "Increase buildpower for human/AI player teams to stop wasting resources", + author = "SethDGamre", + date = "January 2025", + license = "GPLv2", + layer = 1, + enabled = true + } +end + +--early exits +if not gadgetHandler:IsSyncedCode() then return false end + +local modOptions = Spring.GetModOptions() + +if modOptions.nowasting == "default" or modOptions.nowasting == "disabled" then return false end + +--static variables + +--increasing this will magnify the rate at which buildpower is increased or decayed in a compounding fashion. +local buildPowerCompounder = 1.25 + +--the max compounded buildpower multiplier allowed +local maxBuildPowerMultiplier = 20 + +--(dynamic cheats only) while allied teams have a total power this many times greater than the average of all player teams, cheating is suspended +local dynamicModeAllyIsWinningRatio = 1.5 + +--(dynamic cheats only) if the allied teams' tech level is guesstimated below this number, cheating isn't allowed. +local minimumTechLvlToCheat = 1 + +--tables +local aiTeams = {} +local humanTeams = {} +local boostableTeams = {} +local boostableAllies = {} +local overflowingAllies = {} +local teamBoostableUnits = {} +local builderWatchDefs = {} +local builderWatch = {} + +local isAllyTeamWinning +local averageAlliedTechGuesstimate + +--localized functions +local spGetTeamResources = Spring.GetTeamResources +local spSetUnitBuildSpeed = Spring.SetUnitBuildSpeed + +for id, def in pairs(UnitDefs) do + if def.buildSpeed and def.buildSpeed > 0 and def.speed and def.speed == 0 then --we only want base factories and construction turrets to get boosted + builderWatchDefs[id] = def.buildSpeed + end +end + +local function updateTeamOverflowing(allyID, oldMultiplier) + --static + local metalToStorageRatioMultiplier = 0.25 + local isWastingPercentileThreshold = 0.95 + + --variables + local teamIDs = boostableAllies[allyID] + local totalMetal = 0 + local totalMetalStorage = 0 + local totalMetalReceived = 0 + local metalPercentile = 0 + + local wastingMetal = true + for teamID, _ in pairs(teamIDs) do + local metal, metalStorage, pull, metalIncome, metalExpense,share, metalSent, metalReceived = spGetTeamResources(teamID, "metal") + totalMetal = totalMetal + metal + totalMetalStorage = totalMetalStorage + metalStorage + totalMetalReceived = totalMetalReceived + metalReceived + + metalPercentile = totalMetal / totalMetalStorage + if metalPercentile < isWastingPercentileThreshold then + wastingMetal = false + end + end + + local alliesAreWinning = isAllyTeamWinning(_, allyID, dynamicModeAllyIsWinningRatio) + + if totalMetalStorage * metalToStorageRatioMultiplier > totalMetal or (modOptions.dynamiccheats == true and alliesAreWinning == true) then + local newMultiplier = math.max(oldMultiplier / buildPowerCompounder, 1) + return newMultiplier + elseif wastingMetal == true and (modOptions.dynamiccheats == false or + (alliesAreWinning == false and averageAlliedTechGuesstimate(_, allyID) >= minimumTechLvlToCheat)) then + local newMultiplier = math.min(oldMultiplier * buildPowerCompounder, maxBuildPowerMultiplier) + return newMultiplier + else + return oldMultiplier + end +end + +local function updateAllyUnitsBuildPowers(allyID, boostMultiplier) + local teamIDs = boostableAllies[allyID] + for teamID, _ in pairs(teamIDs) do + local units = teamBoostableUnits[teamID] + for unitID, buildPower in pairs(units) do + if builderWatch[unitID] then + spSetUnitBuildSpeed(unitID, buildPower * boostMultiplier) + else + units[unitID] = nil + end + end + end +end + +function gadget:UnitCreated(unitID, unitDefID, unitTeam, builderID) + if builderWatchDefs[unitDefID] then + if teamBoostableUnits[unitTeam] then + teamBoostableUnits[unitTeam][unitID] = builderWatchDefs[unitDefID] + builderWatch[unitID] = true + end + end +end + +function gadget:UnitDestroyed(unitID) + builderWatch[unitID] = nil +end + +function gadget:GameFrame(frame) + if frame % 600 == 0 then + for allyID, oldBuildPowerMultiplier in pairs(overflowingAllies) do + local newBuildPowerMultiplier = updateTeamOverflowing(allyID, oldBuildPowerMultiplier) + if newBuildPowerMultiplier ~= 1 then + updateAllyUnitsBuildPowers(allyID, newBuildPowerMultiplier) + overflowingAllies[allyID] = newBuildPowerMultiplier + end + if newBuildPowerMultiplier == 1 then + for teamID, _ in pairs(boostableAllies[allyID]) do + Spring.SetTeamRulesParam(teamID, "suspendbuilderpriority", 0) + end + else + for teamID, _ in pairs(boostableAllies[allyID]) do + Spring.SetTeamRulesParam(teamID, "suspendbuilderpriority", 1) + end + end + end + end +end + +function gadget:Initialize() + aiTeams = GG.PowerLib.AiTeams + for teamID, _ in pairs (aiTeams) do + boostableTeams[teamID] = true + end + humanTeams = GG.PowerLib.HumanTeams + if modOptions.nowasting == "all" then + for teamID, _ in pairs (humanTeams) do + boostableTeams[teamID] = true + end + end + + for teamID, _ in pairs(boostableTeams) do + local allyID = select(6, Spring.GetTeamInfo(teamID)) + boostableAllies[allyID] = boostableAllies[allyID] or {} + boostableAllies[allyID][teamID] = true + overflowingAllies[allyID] = 1 + teamBoostableUnits[teamID] = {} + end + + isAllyTeamWinning = GG.PowerLib.IsAllyTeamWinning + averageAlliedTechGuesstimate = GG.PowerLib.AverageAlliedTechGuesstimate +end \ No newline at end of file diff --git a/luarules/gadgets/unit_collision_damage_behavior.lua b/luarules/gadgets/unit_collision_damage_behavior.lua index 45c6f8f745e..84aa984e36c 100644 --- a/luarules/gadgets/unit_collision_damage_behavior.lua +++ b/luarules/gadgets/unit_collision_damage_behavior.lua @@ -219,7 +219,8 @@ function gadget:GameFrame(frame) newVelYToOldVelYRatio = 1 end - local scale = data.velocityCap / mathMax(mathAbs(velX), mathAbs(newVelY), mathAbs(velZ)) + local divisor = mathMax(mathAbs(velX), mathAbs(newVelY), mathAbs(velZ), 0.001) + local scale = data.velocityCap / divisor velX = velX * scale * newVelYToOldVelYRatio velZ = velZ * scale * newVelYToOldVelYRatio diff --git a/luarules/gadgets/unit_continuous_aim.lua b/luarules/gadgets/unit_continuous_aim.lua index b7b3ee142eb..cc5ca542450 100644 --- a/luarules/gadgets/unit_continuous_aim.lua +++ b/luarules/gadgets/unit_continuous_aim.lua @@ -123,6 +123,7 @@ local convertedUnitsNames = { ['legmed'] = 5, ['legaheattank'] = 3, ['legrwall'] = 4, + ['legjav'] = 1, } --add entries for scavboss local scavengerBossV4Table = {'scavengerbossv4_veryeasy', 'scavengerbossv4_easy', 'scavengerbossv4_normal', 'scavengerbossv4_hard', 'scavengerbossv4_veryhard', 'scavengerbossv4_epic', diff --git a/luarules/gadgets/unit_crashing_aircraft.lua b/luarules/gadgets/unit_crashing_aircraft.lua index 81827d794d9..50f9c8b967d 100644 --- a/luarules/gadgets/unit_crashing_aircraft.lua +++ b/luarules/gadgets/unit_crashing_aircraft.lua @@ -52,7 +52,7 @@ if gadgetHandler:IsSyncedCode() then end -- make it crash crashingCount = crashingCount + 1 - crashing[unitID] = Spring.GetGameFrame() + 230 + crashing[unitID] = Spring.GetGameFrame() + 450 Spring.SetUnitCOBValue(unitID, COB_CRASHING, 1) Spring.SetUnitNoSelect(unitID,true) Spring.SetUnitNoMinimap(unitID,true) diff --git a/luarules/gadgets/unit_dead.lua b/luarules/gadgets/unit_dead.lua new file mode 100644 index 00000000000..d42dbd1e30e --- /dev/null +++ b/luarules/gadgets/unit_dead.lua @@ -0,0 +1,22 @@ +function gadget:GetInfo() + return { + name = "Dead Unit", + desc = "Remove behaviours from dead units", + license = "GNU GPL, v2 or later", + layer = -1999999, + enabled = true, + } +end + +if gadgetHandler:IsSyncedCode() then + return +end + +function gadget:UnitDestroyed(unitID, unitDefID, unitTeam, attackerID, attackerDefID, attackerTeam) + Spring.SetUnitNoSelect(unitID, true) + if Spring.SetUnitNoGroup then + Spring.SetUnitNoGroup(unitID, true) + else + Spring.SetUnitGroup(unitID, -1) + end +end diff --git a/luarules/gadgets/unit_death_animations.lua b/luarules/gadgets/unit_death_animations.lua index af8e9b80ded..380677eee85 100644 --- a/luarules/gadgets/unit_death_animations.lua +++ b/luarules/gadgets/unit_death_animations.lua @@ -40,7 +40,6 @@ for udid, ud in pairs(UnitDefs) do --almost all raptors have dying anims end end -local SetUnitNoSelect = Spring.SetUnitNoSelect local GiveOrderToUnit = Spring.GiveOrderToUnit local SetUnitBlocking = Spring.SetUnitBlocking local UnitIconSetDraw = Spring.UnitIconSetDraw @@ -56,7 +55,6 @@ end function gadget:UnitDestroyed(unitID, unitDefID, teamID, attackerID, attackerDefID, attackerTeamID) if hasDeathAnim[unitDefID] then --Spring.Echo("gadget:UnitDestroyed",unitID, unitDefID, teamID, attackerID, attackerDefID, attackerTeamID) - SetUnitNoSelect(unitID,true) SetUnitBlocking(unitID,false) -- non blocking while dying Spring.UnitIconSetDraw(unitID, false) -- dont draw icons GiveOrderToUnit(unitID, CMD_STOP, 0, 0) diff --git a/luarules/gadgets/unit_dgun_behaviour.lua b/luarules/gadgets/unit_dgun_behaviour.lua index 0bc377566a5..55f37e303a1 100644 --- a/luarules/gadgets/unit_dgun_behaviour.lua +++ b/luarules/gadgets/unit_dgun_behaviour.lua @@ -15,28 +15,26 @@ end local spSetProjectilePosition = Spring.SetProjectilePosition local spSetProjectileVelocity = Spring.SetProjectileVelocity local spGetProjectilePosition = Spring.GetProjectilePosition -local spGetProjectileDefID = Spring.GetProjectileDefID local spGetUnitShieldState = Spring.GetUnitShieldState local spGetProjectileVelocity = Spring.GetProjectileVelocity -local spSetUnitShieldState = Spring.SetUnitShieldState local spGetGroundHeight = Spring.GetGroundHeight local spDeleteProjectile = Spring.DeleteProjectile -local spGetProjectileOwnerID = Spring.GetProjectileOwnerID local spSpawnExplosion = Spring.SpawnExplosion local spGetUnitPosition = Spring.GetUnitPosition local spSpawnCEG = Spring.SpawnCEG local spGetGameFrame = Spring.GetGameFrame -local modOptions = Spring.GetModOptions() -local dgunWeaponsTTL = {} -local dgunWeapons = {} +local dgunData = {} +local dgunDef = {} local dgunTimeouts = {} +local dgunShieldPenetrations = {} for weaponDefID, weaponDef in ipairs(WeaponDefs) do if weaponDef.type == 'DGun' then Script.SetWatchProjectile(weaponDefID, true) - dgunWeapons[weaponDefID] = weaponDef - dgunWeaponsTTL[weaponDefID] = weaponDef.range / weaponDef.projectilespeed + dgunDef[weaponDefID] = weaponDef + dgunDef[weaponDefID].ttl = weaponDef.range / weaponDef.projectilespeed + dgunDef[weaponDefID].setback = weaponDef.projectilespeed end end @@ -63,32 +61,33 @@ local flyingDGuns = {} local groundedDGuns = {} local function addVolumetricDamage(projectileID) - local weaponDefID = spGetProjectileDefID(projectileID) - local ownerID = spGetProjectileOwnerID(projectileID) - local x,y,z =spGetProjectilePosition(projectileID) - local explosionParame ={ + local projectileData = dgunData[projectileID] + local weaponDefID = projectileData.weaponDefID + local x, y, z = spGetProjectilePosition(projectileID) + local explosionParame = { weaponDef = weaponDefID, - owner = ownerID, + owner = projectileData.proOwnerID, projectileID = projectileID, - damages = dgunWeapons[weaponDefID].damages, + damages = dgunDef[weaponDefID].damages, hitUnit = 1, hitFeature = 1, - craterAreaOfEffect = dgunWeapons[weaponDefID].craterAreaOfEffect, - damageAreaOfEffect = dgunWeapons[weaponDefID].damageAreaOfEffect, - edgeEffectiveness = dgunWeapons[weaponDefID].edgeEffectiveness, - explosionSpeed = dgunWeapons[weaponDefID].explosionSpeed, - impactOnly = dgunWeapons[weaponDefID].impactOnly, - ignoreOwner = dgunWeapons[weaponDefID].noSelfDamage, + craterAreaOfEffect = dgunDef[weaponDefID].craterAreaOfEffect, + damageAreaOfEffect = dgunDef[weaponDefID].damageAreaOfEffect, + edgeEffectiveness = dgunDef[weaponDefID].edgeEffectiveness, + explosionSpeed = dgunDef[weaponDefID].explosionSpeed, + impactOnly = dgunDef[weaponDefID].impactOnly, + ignoreOwner = dgunDef[weaponDefID].noSelfDamage, damageGround = true, } - spSpawnExplosion(x, y ,z, 0, 0, 0, explosionParame) + spSpawnExplosion(x, y, z, 0, 0, 0, explosionParame) end function gadget:ProjectileCreated(proID, proOwnerID, weaponDefID) - if dgunWeapons[weaponDefID] then + if dgunDef[weaponDefID] then + dgunData[proID] = { proOwnerID = proOwnerID, weaponDefID = weaponDefID } flyingDGuns[proID] = true - dgunTimeouts[proID] = (spGetGameFrame() + dgunWeaponsTTL[weaponDefID]) + dgunTimeouts[proID] = (spGetGameFrame() + dgunDef[weaponDefID].ttl) end end @@ -96,6 +95,8 @@ function gadget:ProjectileDestroyed(proID) flyingDGuns[proID] = nil groundedDGuns[proID] = nil dgunTimeouts[proID] = nil + dgunShieldPenetrations[proID] = nil + dgunData[proID] = nil end function gadget:GameFrame(frame) @@ -110,7 +111,7 @@ function gadget:GameFrame(frame) if y < h + 1 or y < 0 then -- assume ground or water collision -- normalize horizontal velocity local dx, _, dz, speed = spGetProjectileVelocity(proID) - local norm = speed / math.sqrt(dx^2 + dz^2) + local norm = speed / math.sqrt(dx ^ 2 + dz ^ 2) local ndx = dx * norm local ndz = dz * norm spSetProjectileVelocity(proID, ndx, 0, ndz) @@ -140,58 +141,54 @@ function gadget:GameFrame(frame) end end -function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer, weaponDefID, projectileID, attackerID, attackerDefID, attackerTeam) - if dgunWeapons[weaponDefID] and isCommander[attackerDefID] and (isCommander[unitDefID] or isDecoyCommander[unitDefID]) then +function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer, weaponDefID, projectileID, attackerID, + attackerDefID, attackerTeam) + if dgunDef[weaponDefID] and isCommander[attackerDefID] and (isCommander[unitDefID] or isDecoyCommander[unitDefID]) then if isDecoyCommander[unitDefID] then - return dgunWeapons[weaponDefID].damages[0] + return dgunDef[weaponDefID].damages[0] else spDeleteProjectile(projectileID) local x, y, z = spGetUnitPosition(unitID) spSpawnCEG("dgun-deflect", x, y, z, 0, 0, 0, 0, 0) local armorClass = UnitDefs[unitDefID].armorType - return dgunWeapons[weaponDefID].damages[armorClass] + return dgunDef[weaponDefID].damages[armorClass] end end return damage end -local lastShieldFrameCheck = {} - -function gadget:ShieldPreDamaged(proID, proOwnerID, shieldEmitterWeaponNum, shieldCarrierUnitID, bounceProjectile, beamEmitterWeaponNum, beamEmitterUnitID, startX, startY, startZ, hitX, hitY, hitZ) +function gadget:ShieldPreDamaged(proID, proOwnerID, shieldEmitterWeaponNum, shieldCarrierUnitID, bounceProjectile, + beamEmitterWeaponNum, beamEmitterUnitID, startX, startY, startZ, hitX, hitY, hitZ) if proID > -1 and dgunTimeouts[proID] then - local proDefID = spGetProjectileDefID(proID) + if dgunShieldPenetrations[proID] then return true end + local proDefID = dgunData[proID].weaponDefID local shieldEnabledState, shieldPower = spGetUnitShieldState(shieldCarrierUnitID) - local damage = WeaponDefs[proDefID].damages[Game.armorTypes.shields] or WeaponDefs[proDefID].damages[Game.armorTypes.default] - - local gameframe = spGetGameFrame() - - if not modOptions.shieldsrework then - local damageCooldownFrames = 10 - if shieldPower < damage then return false end + local damage = WeaponDefs[proDefID].damages[Game.armorTypes.shields] or + WeaponDefs[proDefID].damages[Game.armorTypes.default] - lastShieldFrameCheck[shieldCarrierUnitID] = lastShieldFrameCheck[shieldCarrierUnitID] or gameframe + local weaponDefID = dgunData[proID].weaponDefID - if hitX > 0 and lastShieldFrameCheck[shieldCarrierUnitID] <= gameframe then - shieldPower = math.max(shieldPower - damage, 0) - spSetUnitShieldState(shieldCarrierUnitID, shieldEmitterWeaponNum, shieldEnabledState, shieldPower) - lastShieldFrameCheck[shieldCarrierUnitID] = gameframe + damageCooldownFrames + if not dgunShieldPenetrations[proID] then + if shieldPower <= damage then + shieldPower = 0 + dgunShieldPenetrations[proID] = true end end - -- Engine does not provide a way for shields to stop DGun projectiles, they will impact once and carry on through, -- need to manually move them back a bit so the next touchdown hits the shield - if shieldPower > 0 then - -- Extra offset required to avoid edgecase where projectile penetrates, value chosen empirically - local offsetFactor = 1.1 - local dx, dy, dz, speed = spGetProjectileVelocity(proID) - local magnitude = math.sqrt(dx^2 + dy^2 + dz^2) + if not dgunShieldPenetrations[proID] then + -- Adjusting the projectile position based on setback + local dx, dy, dz = spGetProjectileVelocity(proID) + local magnitude = math.sqrt(dx ^ 2 + dy ^ 2 + dz ^ 2) local normalX, normalY, normalZ = dx / magnitude, dy / magnitude, dz / magnitude + local setback = dgunDef[weaponDefID].setback + local x, y, z = spGetProjectilePosition(proID) - local newX = x - speed * normalX * offsetFactor - local newY = y - speed * normalY * offsetFactor - local newZ = z - speed * normalZ * offsetFactor + local newX = x - normalX * setback + local newY = y - normalY * setback + local newZ = z - normalZ * setback spSetProjectilePosition(proID, newX, newY, newZ) end diff --git a/luarules/gadgets/unit_liche_cruisecontrol.lua b/luarules/gadgets/unit_liche_cruisecontrol.lua index 8db8df9571e..dbf986bf870 100644 --- a/luarules/gadgets/unit_liche_cruisecontrol.lua +++ b/luarules/gadgets/unit_liche_cruisecontrol.lua @@ -45,9 +45,9 @@ end function gadget:UnitFinished(unitID, unitDefID, unitTeam) if liche[unitDefID] then - spMoveCtrlSetAirMoveTypeData(unitID, {attackSafetyDistance = 3000}) + spMoveCtrlSetAirMoveTypeData(unitID, "attackSafetyDistance", 3000) end if epicliche[unitDefID] then - spMoveCtrlSetAirMoveTypeData(unitID, {attackSafetyDistance = 20000}) + spMoveCtrlSetAirMoveTypeData(unitID, "attackSafetyDistance", 20000) end end diff --git a/luarules/gadgets/unit_pop_up_water_structures.lua b/luarules/gadgets/unit_pop_up_water_structures.lua deleted file mode 100644 index 90a34aaa6d5..00000000000 --- a/luarules/gadgets/unit_pop_up_water_structures.lua +++ /dev/null @@ -1,130 +0,0 @@ -function gadget:GetInfo() - return { - name = "PopUpWaterStructures", - desc = "", - author = "TheFatController", - date = "26 May 2013", - license = "GNU GPL, v2 or later", - layer = 0, - enabled = true - } -end - --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- - -if (gadgetHandler:IsSyncedCode()) then - - -local POP_UP_UNITDEFS = { - armptl = { unit = "armtl", waterLine = -10 }, - corptl = { unit = "cortl", waterLine = -10 }, - armptl_scav = { unit = "armtl_scav", waterLine = -10 }, - corptl_scav = { unit = "cortl_scav", waterLine = -10 }, -} - -local POP_UP_UNIT = {} -for unitDefName, popupunit in pairs(POP_UP_UNITDEFS) do - if UnitDefNames[unitDefName] and UnitDefNames[popupunit.unit] then - popupunit.unit = UnitDefNames[popupunit.unit].id - POP_UP_UNIT[UnitDefNames[unitDefName].id] = popupunit - end -end -POP_UP_UNITDEFS = nil - -local PTL_COLLISION = WeaponDefNames.ptl_collision.id; - -local popUps = {} - -local math_max = math.max -local math_random = math.random - -local function HeadingToFacing(heading) - return ((heading + 8192) / 16384) % 4 -end - - -function gadget:UnitCreated(unitID, unitDefID, unitTeam) - if (POP_UP_UNIT[unitDefID]) then - popUps[unitID] = { velocity = 0.05, waterLine = POP_UP_UNIT[unitDefID].waterLine , process = false} - end -end - - -function gadget:UnitFinished(unitID, unitDefID, unitTeam) - if (POP_UP_UNIT[unitDefID]) and unitID and Spring.ValidUnitID(unitID) then - Spring.MoveCtrl.Enable(unitID) - popUps[unitID].process = true - end -end - -function gadget:UnitDestroyed(unitID, unitDefID, unitTeam) - if (POP_UP_UNIT[unitDefID]) and unitID then - popUps[unitID].process = false - end -end - -function gadget:GameFrame(n) - for unitID, defs in pairs(popUps) do - if defs.process == true then - local x,y,z = Spring.GetUnitPosition(unitID) - if (y > defs.waterLine) then - local h = HeadingToFacing(Spring.GetUnitHeading(unitID)) - Spring.MoveCtrl.Disable(unitID) - local newUnitID = Spring.CreateUnit(POP_UP_UNIT[Spring.GetUnitDefID(unitID)].unit,x,0,z,h,Spring.GetUnitTeam(unitID)) - if newUnitID then - local cmds = Spring.GetCommandQueue(unitID,20) - for i=1,#cmds do - local cmd = cmds[i] - Spring.GiveOrderToUnit(newUnitID, cmd.id, cmd.params, cmd.options.coded) - end - Spring.SetUnitHealth(newUnitID, select(1,Spring.GetUnitHealth(unitID))) - Spring.DestroyUnit(unitID, false, true) - - Spring.SpawnCEG("splash-tiny",x,-5,z,0,0,0) - SendToUnsynced("splashsound", x,y,z) - popUps[unitID].process = false - local collisions = Spring.GetUnitsInSphere(x,0,z,35) - for i=1,#collisions do - local colUnitID = collisions[i] - if (colUnitID ~= newUnitID) and (colUnitID ~= unitID) then - Spring.SpawnProjectile(PTL_COLLISION, { ["pos"] = {x,0,z}, ["end"] = {x,0,z} }) - end - end - collisions = Spring.GetFeaturesInSphere(x,0,z,35) - for i=1,#collisions do - local colFeatureID = collisions[i] - Spring.SpawnProjectile(PTL_COLLISION, { ["pos"] = {x,0,z}, ["end"] = {x,0,z} }) - if Spring.ValidFeatureID(colFeatureID) then - Spring.DestroyFeature(colFeatureID) - end - end - end - else - Spring.MoveCtrl.SetRelativeVelocity(unitID,0,defs.velocity,0) - popUps[unitID].velocity = math_max(defs.velocity * 1.05, 1.75) - if math_random() > 0.8 then - Spring.SpawnCEG("small_water_bubbles",x,y,z,0,1,0) - end - end - end - end -end - --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- -else -- UNSYNCED --------------------------------------------------------------- --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- - -function gadget:Initialize() - gadgetHandler:AddSyncAction("splashsound", SplashSound) -end - -function SplashSound(_,x,y,z) - if (Spring.IsPosInLos(x,y,z)) then - Spring.PlaySoundFile("splslrg", ((Spring.GetConfigInt("snd_volmaster") or 100) / 100), x,y,z, 'ui') - end -end - -end diff --git a/luarules/gadgets/unit_projectile_overrange.lua b/luarules/gadgets/unit_projectile_overrange.lua new file mode 100644 index 00000000000..3ef0d328eb5 --- /dev/null +++ b/luarules/gadgets/unit_projectile_overrange.lua @@ -0,0 +1,223 @@ +function gadget:GetInfo() + return { + name = "Projectile Over-Range and Leashing", + desc = "Destroys projectiles if they exceed defined ranges", + author = "SethDGamre", + layer = 1, + enabled = true + } +end + +if not gadgetHandler:IsSyncedCode() then return end + +---- unit customParams ---- +-- use weaponDef customparams overrange_distance to destroy projectiles exceeding its limit. +-- use weaponDef customparams leash_distance to destroy projectiles when they exceed range/overrange_distance and leash_distance relative to unit position. + +---- optional customParams ---- +-- use weaponDef customparams projectile_destruction_method = "string" to change how projectiles are destroyed. +-- "explode" (default if undefined) detonates the projectile. +-- "descend" moves the projectile downward until it is destroyed by collision event. + +--static values +local lateralMultiplier = 0.85 +local compoundingMultiplier = 1.1 --compounding multiplier that influences the arc at which projectiles are forced to descend +local descentSpeedStartingMultiplier = 0.15 + +local descentModulo = math.floor(Game.gameSpeed / 4) +local leashModulo = math.ceil(Game.gameSpeed / 3) + +--functions +local spGetUnitPosition = Spring.GetUnitPosition +local mathRandom = math.random +local mathCeil = math.ceil +local mathSqrt = math.sqrt +local spGetProjectilePosition = Spring.GetProjectilePosition +local spSetProjectileCollision = Spring.SetProjectileCollision +local spGetProjectileVelocity = Spring.GetProjectileVelocity +local spSetProjectileVelocity = Spring.SetProjectileVelocity + +--tables +local defWatchTable = {} +local proMetaData = {} +local flightTimeWatch = {} +local descentTable = {} +local killQueue = {} +local leashWatch = {} + +--variables +local gameFrame = 0 + + +for weaponDefID, weaponDef in pairs(WeaponDefs) do + local customParams = weaponDef.customParams + if customParams.leash_distance or customParams.overrange_distance then + local watchParams = {} + if customParams.leash_distance then + watchParams.leashRangeSq = tonumber(customParams.leash_distance) ^ 2 + end + + local overRange = tonumber(customParams.overrange_distance) or weaponDef.range + watchParams.overRange = overRange + + local ascentFrames = 0 + if weaponDef.type == "StarburstLauncher" then + ascentFrames = weaponDef.uptime * Game.gameSpeed + end + watchParams.flightTimeFrames = + math.max(math.floor(((overRange / weaponDef.projectilespeed) + ascentFrames)), 1) + watchParams.weaponDefID = weaponDefID + + local destructionMethod = customParams.projectile_destruction_method or "explode" + if destructionMethod == "descend" then + watchParams.descentMethod = true + end + + defWatchTable[weaponDefID] = watchParams + Script.SetWatchWeapon(weaponDefID, true) + end +end + + +local function leashCheck(maxRangeSq, proOwnerID, proX, proZ) + local ownerX, _, ownerZ = spGetUnitPosition(proOwnerID) + if ownerX then + local dx = ownerX - proX + local dz = ownerZ - proZ + if (dx * dx + dz * dz) > maxRangeSq then + return true + end + else + return true + end +end + + +local function recalculateFlightTime(proID, maxRange, x1, z1, x2, z2) + local dx = x2 - x1 + local dz = z2 - z1 + local distance = mathSqrt(dx * dx + dz * dz) + + -- Check if the projectile is within the max range + if distance < maxRange then + local vx, _, vz = spGetProjectileVelocity(proID) + if not vx then return false end + + local remainingDistance = maxRange - distance + + local proSpeed = mathSqrt(vx * vx + vz * vz) + + local frames = mathCeil(remainingDistance / proSpeed) + + return frames + else + return false + end +end + +local function setDestructionFrame(proID, newFlightTime) + local triggerFrame = gameFrame + newFlightTime --mathCeil(gameFrame + mathRandom(projectileWatchModulus)) + + killQueue[triggerFrame] = killQueue[triggerFrame] or {} + killQueue[triggerFrame][#killQueue[triggerFrame] + 1] = proID +end + + +local function setFlightTimeFrame(proID, newFlightTime) + local triggerFrame = gameFrame + newFlightTime + + flightTimeWatch[triggerFrame] = flightTimeWatch[triggerFrame] or {} + flightTimeWatch[triggerFrame][#flightTimeWatch[triggerFrame] + 1] = proID +end + + +function gadget:ProjectileCreated(proID, proOwnerID, weaponDefID) + local defData = defWatchTable[weaponDefID] + if not defData then return end + + setFlightTimeFrame(proID, defData.flightTimeFrames) + + local metaData = { weaponDefID = weaponDefID, proOwnerID = proOwnerID } + local originX, _, originZ = spGetUnitPosition(proOwnerID) + metaData.originX = originX + metaData.originZ = originZ + + proMetaData[proID] = metaData +end + +function gadget:ProjectileDestroyed(proID) + proMetaData[proID] = nil +end + +function gadget:GameFrame(frame) + gameFrame = frame + + if flightTimeWatch[frame] then + for _, proID in ipairs(flightTimeWatch[frame]) do + local projectileX, _, projectileZ = spGetProjectilePosition(proID) + if projectileX then + local proData = proMetaData[proID] + local defData = defWatchTable[proData.weaponDefID] + local newFlightTime = recalculateFlightTime(proID, defData.overRange, proData.originX, proData.originZ, projectileX, projectileZ) + if newFlightTime then + setFlightTimeFrame(proID, newFlightTime) + else + if defData.leashRangeSq then + leashWatch[proID] = defData.leashRangeSq + else + setDestructionFrame(proID, 1) --destroy next frame + end + end + else + proMetaData[proID] = nil + end + end + flightTimeWatch[frame] = nil + end + + if frame % leashModulo == 3 then + for proID, leashRangeSq in pairs(leashWatch) do + local projectileX, _, projectileZ = spGetProjectilePosition(proID) + if projectileX then + local proData = proMetaData[proID] + if leashCheck(leashRangeSq, proData.proOwnerID, projectileX, projectileZ) then + setDestructionFrame(proID, mathRandom(leashModulo)) --destroy randomly between now and next frame check to reduce simultaneous projectile destructions + leashWatch[proID] = nil + end + else + leashWatch[proID] = nil + proMetaData[proID] = nil + end + end + end + + if killQueue[frame] then + local descentMultiplier = descentSpeedStartingMultiplier + for _, proID in ipairs(killQueue[frame]) do + local proData = proMetaData[proID] + if proData then + local defData = defWatchTable[proData.weaponDefID] + if defData.descentMethod then + descentTable[proID] = descentMultiplier + else + spSetProjectileCollision(proID) + end + end + proMetaData[proID] = nil + end + killQueue[frame] = nil + end + + if frame % descentModulo == 3 then + for proID, descentMultiplier in pairs(descentTable) do + local velocityX, velocityY, velocityZ, velocityOverall = spGetProjectileVelocity(proID) + if velocityY then + local newVelocityY = velocityY - velocityOverall * descentMultiplier + spSetProjectileVelocity(proID, velocityX * lateralMultiplier, newVelocityY, velocityZ * lateralMultiplier) + descentTable[proID] = descentMultiplier * compoundingMultiplier + else + descentTable[proID] = nil + end + end + end +end diff --git a/luarules/gadgets/unit_scenario_loadout.lua b/luarules/gadgets/unit_scenario_loadout.lua index 57a7f56a5a0..4d9bd81bad6 100644 --- a/luarules/gadgets/unit_scenario_loadout.lua +++ b/luarules/gadgets/unit_scenario_loadout.lua @@ -76,15 +76,15 @@ function gadget:GamePreload() local unitID = Spring.CreateUnit(unit.name, unit.x, Spring.GetGroundHeight(unit.x, unit.z), unit.z, rot, unit.team) if unitID then Spring.GiveOrderToUnit(unitID, CMD.STOP, {}, 0) - if UnitDefNames[unit.name].energyStorage > 0 or UnitDefNames[unit.name].metalStorage > 0 then - if additionalStorage[unit.team] == nil then + if UnitDefNames[unit.name].energyStorage > 0 or UnitDefNames[unit.name].metalStorage > 0 then + if additionalStorage[unit.team] == nil then additionalStorage[unit.team] = {metal = 0, energy = 0} end additionalStorage[unit.team].metal = additionalStorage[unit.team].metal + (UnitDefNames[unit.name].metalStorage or 0 ) additionalStorage[unit.team].energy = additionalStorage[unit.team].energy + (UnitDefNames[unit.name].energyStorage or 0 ) end end - if unit.name == "armnanotc" or unit.name == "cornanotc" or unit.name == "armnanotcplat" or unit.name == "cornanotcplat" then + if string.find(defs.name, "nanotc") then nanoturretunitIDs[unitID] = true end if unit.neutral == true or unit.neutral == 'true' then @@ -127,8 +127,8 @@ function gadget:GameFrame(n) Spring.GiveOrderToUnit(unitID, CMD.STOP, {}, 0) end end - if next(additionalStorage) then - for teamID, additionalstorage in pairs(additionalStorage) do + if next(additionalStorage) then + for teamID, additionalstorage in pairs(additionalStorage) do local m, mstore = Spring.GetTeamResources(teamID, "metal") local e, estore = Spring.GetTeamResources(teamID, "energy") Spring.SetTeamResource(teamID, 'ms', mstore + additionalstorage.metal) @@ -145,9 +145,9 @@ function gadget:GameFrame(n) local teamID = teamList[i] local m, mstore = Spring.GetTeamResources(teamID, "metal") local e, estore = Spring.GetTeamResources(teamID, "energy") - if mstore < 500 then Spring.SetTeamResource(teamID, 'ms', 500) end - if estore < 500 then Spring.SetTeamResource(teamID, 'es', 500) end + if mstore < 500 then Spring.SetTeamResource(teamID, 'ms', 500) end + if estore < 500 then Spring.SetTeamResource(teamID, 'es', 500) end end end ]]-- -end \ No newline at end of file +end diff --git a/luarules/gadgets/unit_shield_behaviour.lua b/luarules/gadgets/unit_shield_behaviour.lua index ba8ba6cd6d1..6fb54528ca7 100644 --- a/luarules/gadgets/unit_shield_behaviour.lua +++ b/luarules/gadgets/unit_shield_behaviour.lua @@ -1,77 +1,145 @@ function gadget:GetInfo() return { name = "Shield Behaviour", - desc = "Overrides default shield engine behavior. Defines downtime.", + desc = "Overrides default shield engine behavior.", author = "SethDGamre", layer = 1, enabled = true } end -if not Spring.GetModOptions().shieldsrework then return false end -if not gadgetHandler:IsSyncedCode() then return end +if not gadgetHandler:IsSyncedCode() then return false end ---- Optional unit customParams ---- --- shield_downtime = , if not set defaults to defaultDowntime -- shield_aoe_penetration = bool, if true then AOE damage will hurt units within the shield radius -local defaultDowntime = 1 - --- To save on performance, do not perform AoE damage mitigation checks below this threshold, value chosen empirically to negate laser AoE from a Mammoth -local aoeIgnoreThreshold = 11 - --- Units half-in/half-out of a shield should not be protected, so need a buffer of non-coverage near the edge, value chosen empirically through testing to avoid having to look up collision volumes -local radiusExclusionBuffer = 10 - -- If a unit doesn't have a defined shield damage or default damage, fallbackShieldDamage will be used as a fallback. -local fallbackShieldDamage = 0 - -local spGetUnitShieldState = Spring.GetUnitShieldState -local spSetUnitShieldState = Spring.SetUnitShieldState -local spGetGameSeconds = Spring.GetGameSeconds -local spSetUnitShieldRechargeDelay = Spring.SetUnitShieldRechargeDelay -local spDeleteProjectile = Spring.DeleteProjectile -local spGetProjectileDefID = Spring.GetProjectileDefID -local spGetUnitPosition = Spring.GetUnitPosition -local spGetUnitsInSphere = Spring.GetUnitsInSphere -local spGetProjectilesInRectangle = Spring.GetProjectilesInRectangle -local spGetUnitIsStunned = Spring.GetUnitIsStunned -local spAreTeamsAllied = Spring.AreTeamsAllied -local spGetUnitIsActive = Spring.GetUnitIsActive - -local shieldUnitDefs = {} -local shieldUnitsData = {} -local originalShieldDamages = {} -local beamEmitterWeapons = {} -local forceDeleteWeapons = {} -local unitDefIDCache = {} -local projectileDefIDCache = {} -local shieldedUnits = {} -local AOEWeaponDefIDs = {} -local projectileShieldHitCache = {} -local gameSeconds = 0 +local fallbackShieldDamage = 0 + +-- this defines what amount of the total damage a unit deals qualifies as a direct hit for units that are in the vague areas between covered and not covered by shields (typically on edges or sticking out partially) +local directHitQualifyingMultiplier = 0.95 + +-- the minimum number of frames before the shield is allowed to turn back on. Extra regenerated shield charge is applied to the shield when it comes back online. +local minDownTime = 1 * Game.gameSpeed + +-- The maximum number of frames a shield is allowed to be offline from overkill. This is to handle very, very high single-attack damage which would otherwise cripple the shield for multiple minutes. +local maxDownTime = 20 * Game.gameSpeed + +local reworkEnabled = Spring.GetModOptions().shieldsrework --remove when shield rework is permanent +local shieldModulo = Game.gameSpeed +local shieldOnUnitRulesParamIndex = 531313 +local INLOS = { inlos = true } + +local spGetUnitShieldState = Spring.GetUnitShieldState +local spSetUnitShieldState = Spring.SetUnitShieldState +local spSetUnitShieldRechargeDelay = Spring.SetUnitShieldRechargeDelay +local spDeleteProjectile = Spring.DeleteProjectile +local spGetProjectileDefID = Spring.GetProjectileDefID +local spGetUnitPosition = Spring.GetUnitPosition +local spGetUnitsInSphere = Spring.GetUnitsInSphere +local spGetProjectilesInRectangle = Spring.GetProjectilesInRectangle +local spAreTeamsAllied = Spring.AreTeamsAllied +local spGetUnitIsActive = Spring.GetUnitIsActive +local spUseUnitResource = Spring.UseUnitResource +local spSetUnitRulesParam = Spring.SetUnitRulesParam +local spGetUnitArmored = Spring.GetUnitArmored +local mathMax = math.max +local mathCeil = math.ceil + +local shieldUnitDefs = {} +local shieldUnitsData = {} +local originalShieldDamages = {} +local beamEmitterWeapons = {} +local forceDeleteWeapons = {} +local unitDefIDCache = {} +local projectileDefIDCache = {} +local shieldedUnits = {} +local AOEWeaponDefIDs = {} +local projectileShieldHitCache = {} +local highestWeapDefDamages = {} +local armoredUnitDefs = {} + +local gameFrame = 0 for weaponDefID, weaponDef in ipairs(WeaponDefs) do - if weaponDef.damageAreaOfEffect > aoeIgnoreThreshold and not weaponDef.customParams.shield_aoe_penetration then - AOEWeaponDefIDs[weaponDefID] = true - end - if weaponDef.customParams.beamtime_damage_reduction_multiplier then - local base = weaponDef.customParams.shield_damage or fallbackShieldDamage - local multiplier = weaponDef.customParams.beamtime_damage_reduction_multiplier - originalShieldDamages[weaponDefID] = math.ceil(base * multiplier) - else - originalShieldDamages[weaponDefID] = weaponDef.customParams.shield_damage or fallbackShieldDamage + if weaponDef.type == 'Flame' or weaponDef.customParams.overpenetrate then --overpenetration and flame projectiles aren't deleted when striking the shield. For compatibility with shield blocking type overrides. + forceDeleteWeapons[weaponDefID] = weaponDef end - if weaponDef.type == 'Flame' or weaponDef.customParams.overpenetrate then - forceDeleteWeapons[weaponDefID] = weaponDef + if reworkEnabled then --remove this if when shield rework is permanent + if not weaponDef.customParams.shield_aoe_penetration then + AOEWeaponDefIDs[weaponDefID] = true + end + + if weaponDef.customParams.beamtime_damage_reduction_multiplier then + local base = weaponDef.customParams.shield_damage or fallbackShieldDamage + local multiplier = weaponDef.customParams.beamtime_damage_reduction_multiplier + originalShieldDamages[weaponDefID] = mathCeil(base * multiplier) + else + originalShieldDamages[weaponDefID] = weaponDef.customParams.shield_damage or fallbackShieldDamage + end + + + + local highestDamage = 0 + if weaponDef.damages then + for type, damage in ipairs(weaponDef.damages) do + if damage > highestDamage then + highestDamage = damage + end + end + end + + --this section calculates the rough amount of damage required to be considered a "direct hit", which assumes it didn't happen from AOE reaching inside shield. + local beamtimeReductionMultiplier = 1 + local minIntensity = 1 + if weaponDef.beamtime and weaponDef.beamtime < 1 then + local minimumMinIntensity = 0.5 + local minIntensity = weaponDef.minIntensity or minimumMinIntensity + minIntensity = math.max(minIntensity, minimumMinIntensity) + -- This splits up the damage of hitscan weapons over the duration of beamtime, as each frame counts as a hit in ShieldPreDamaged() callin + -- Math.floor is used to sheer off the extra digits of the number of frames that the hits occur + beamtimeReductionMultiplier = 1 / math.floor(weaponDef.beamtime * Game.gameSpeed) + end + + + local minimumMinIntensity = 0.65 --impirically tested to work the majority of the time with normal damage falloff. + local hasDamageFalloff = false + local damageFalloffUnitTypes = { + BeamLaser = true, + Flame = true, + LaserCannon = true, + LightningCannon = true, + } + if damageFalloffUnitTypes[weaponDef.type] then + hasDamageFalloff = true + end + + if weaponDef.minIntensity and hasDamageFalloff then + minIntensity = math.max(minimumMinIntensity, weaponDef.minIntensity) + end + + highestWeapDefDamages[weaponDefID] = highestDamage * beamtimeReductionMultiplier * minIntensity * + directHitQualifyingMultiplier end end for unitDefID, unitDef in pairs(UnitDefs) do + if not reworkEnabled then break end --remove when shield rework is permanent if unitDef.customParams.shield_radius then - shieldUnitDefs[unitDefID] = unitDef + local data = {} + data.shieldRadius = tonumber(unitDef.customParams.shield_radius) + + for i, weaponsData in pairs(unitDef.weapons) do + local wDefData = WeaponDefs[weaponsData.weaponDef] + if wDefData.shieldPowerRegen and wDefData.shieldPowerRegen > 0 then + data.shieldWeaponNumber = i + data.shieldPowerRegen = wDefData.shieldPowerRegen + data.shieldPowerRegenEnergy = wDefData.shieldPowerRegenEnergy + end + end + shieldUnitDefs[unitDefID] = data end if unitDef.weapons then @@ -82,8 +150,14 @@ for unitDefID, unitDef in pairs(UnitDefs) do end end end + + if unitDef.armoredMultiple and unitDef.armoredMultiple < 1 and unitDef.armoredMultiple > 0 then + armoredUnitDefs[unitDefID] = unitDef.armoredMultiple + end end +----local functions---- + local function removeCoveredUnits(shieldUnitID) for unitID, shieldList in pairs(shieldedUnits) do if shieldList[shieldUnitID] then @@ -99,7 +173,7 @@ local function setCoveredUnits(shieldUnitID) if not shieldData or not x then return else - local unitsTable = spGetUnitsInSphere(x, y, z, (shieldData.radius - radiusExclusionBuffer)) + local unitsTable = spGetUnitsInSphere(x, y, z, shieldData.radius) for _, unitID in ipairs(unitsTable) do shieldedUnits[unitID] = shieldedUnits[unitID] or {} @@ -116,18 +190,25 @@ function gadget:MetaUnitAdded(unitID, unitDefID, unitTeam) end end +----main logic---- + function gadget:UnitFinished(unitID, unitDefID, unitTeam) - if shieldUnitDefs[unitDefID] then + if not reworkEnabled then return end --remove when shield rework is permanent + local data = shieldUnitDefs[unitDefID] + if data then shieldUnitsData[unitID] = { - shieldEnabled = true, -- Virtualized enabled/disabled state until engine equivalent is changed - shieldDamage = 0, -- This stores the value of damages populated in ShieldPreDamaged(), then applied in GameFrame() all at once - shieldWeaponNumber = -1, -- This is replaced with the real shieldWeaponNumber as soon as the shield is damaged - downtime = shieldUnitDefs[unitDefID].customParams.shield_downtime or defaultDowntime, -- Defined in unitdef.customparams with a default fallback value - downtimeReset = 0, - shieldCoverageChecked = false, -- Used to prevent expensive unit coverage checks being performed more than once per cycle - radius = shieldUnitDefs[unitDefID].customParams.shield_radius + shieldPowerRegen = data.shieldPowerRegen, + shieldPowerRegenEnergy = data.shieldPowerRegenEnergy, + shieldWeaponNumber = data.shieldWeaponNumber, -- This is replaced with the real shieldWeaponNumber as soon as the shield is damaged + radius = data.shieldRadius, + shieldEnabled = false, -- Virtualized enabled/disabled state until engine equivalent is changed + shieldDamage = 0, -- This stores the value of damages populated in ShieldPreDamaged(), then applied in GameFrame() all at once + shieldCoverageChecked = false, -- Used to prevent expensive unit coverage checks being performed more than once per cycle + overKillDamage = 0, + shieldDownTime = 0, + maxDownTime = 0 } - setCoveredUnits(unitID) + setCoveredUnits(unitID) end -- Increases performance by reducing global unitDefID lookups @@ -135,6 +216,7 @@ function gadget:UnitFinished(unitID, unitDefID, unitTeam) end function gadget:UnitDestroyed(unitID) + if not reworkEnabled then return end --remove when shield rework is permanent shieldUnitsData[unitID] = nil unitDefIDCache[unitID] = nil end @@ -149,28 +231,57 @@ function gadget:ProjectileDestroyed(proID) projectileShieldHitCache[proID] = nil end -local function triggerDowntime(unitID, weaponNum) +local function setProjectilesAlreadyInsideShield(shieldUnitID, radius) + -- This section is to allow slower moving projectiles already inside the shield when it comes back online to damage units within the radius. + local x, y, z = spGetUnitPosition(shieldUnitID) + -- Engine has GetProjectilesInRectangle, but not GetProjectilesInCircle, so we have to square the circle + -- TODO: Change to GetProjectilesInCircle once it is added + local radius = radius * math.sqrt(math.pi) / 2 + local xmin = x - radius + local xmax = x + radius + local zmin = z - radius + local zmax = z + radius + local projectiles = spGetProjectilesInRectangle(xmin, zmin, xmax, zmax) + for _, projectileID in ipairs(projectiles) do + projectileShieldHitCache[projectileID] = true + end +end + +local function suspendShield(unitID) local shieldData = shieldUnitsData[unitID] -- Dummy disable recharge delay, as engine does not support downtime -- Arbitrary large value used to ensure shield does not reactivate before we want it to, -- but using math.huge causes shield to instantly reactivate - spSetUnitShieldRechargeDelay(unitID, weaponNum, 3600) + spSetUnitShieldRechargeDelay(unitID, shieldData.shieldWeaponNumber, 3600) - spSetUnitShieldState(unitID, weaponNum, false) - shieldData.downtimeReset = gameSeconds + shieldData.downtime + spSetUnitShieldState(unitID, shieldData.shieldWeaponNumber, false) shieldData.shieldEnabled = false + shieldData.shieldDownTime = gameFrame + minDownTime + shieldData.maxDownTime = gameFrame + maxDownTime + spSetUnitRulesParam(unitID, shieldOnUnitRulesParamIndex, 0, INLOS) +end + +local function activateShield(unitID) + local shieldData = shieldUnitsData[unitID] + shieldData.shieldEnabled = true + spSetUnitRulesParam(unitID, shieldOnUnitRulesParamIndex, 1, INLOS) + spSetUnitShieldRechargeDelay(unitID, shieldData.shieldWeaponNumber, 0) + + setProjectilesAlreadyInsideShield(unitID, shieldData.radius) end local function shieldNegatesDamageCheck(unitID, unitTeam, attackerID, attackerTeam) -- It is possible for attackerID to be nil, e.g. damage from death explosion - if shieldedUnits[unitID] and next(shieldedUnits[unitID]) and attackerID and not spAreTeamsAllied(unitTeam, attackerTeam) then - if not shieldedUnits[attackerID] or (not next(shieldedUnits[attackerID]) and next(shieldedUnits[unitID])) then + local unitShields = shieldedUnits[unitID] + if unitShields and next(unitShields) and attackerID and not spAreTeamsAllied(unitTeam, attackerTeam) then + local attackerShields = shieldedUnits[attackerID] + if not attackerShields or not next(attackerShields) then return true end - for shieldUnitID, _ in pairs(shieldedUnits[unitID]) do - if shieldedUnits[attackerID][shieldUnitID] then + for shieldUnitID, _ in pairs(unitShields) do + if attackerShields[shieldUnitID] then break else --The units have to share all of the same shield spaces. As soon as a mismatch is found, that means they don't occupy the same shield space and the shot should be blocked. @@ -190,64 +301,63 @@ local shieldCheckChunkSize = 10 local shieldCheckEndIndex = 1 function gadget:GameFrame(frame) - gameSeconds = spGetGameSeconds() + gameFrame = frame + if not reworkEnabled then return end --remove when shield rework is permanent for shieldUnitID, _ in pairs(shieldCheckFlags) do - local shieldData = shieldUnitsData[shieldUnitID] + local shieldData = shieldUnitsData[shieldUnitID] --zzz for some reason the shield orb isn't disappearing sometimes when big damage + --apply shield damages if shieldData then - if shieldData.shieldDamage > 0 and shieldData.shieldWeaponNumber > -1 then + if shieldData.shieldDamage > 0 then local enabledState, shieldPower = spGetUnitShieldState(shieldUnitID) shieldPower = shieldPower - shieldData.shieldDamage if shieldPower < 0 then + shieldData.overKillDamage = shieldPower --stored as a negative value shieldPower = 0 end spSetUnitShieldState(shieldUnitID, shieldData.shieldWeaponNumber, shieldPower) shieldData.shieldDamage = 0 - if shieldData.downtimeReset < gameSeconds and shieldPower <= 0 then - triggerDowntime(shieldUnitID, shieldData.shieldWeaponNumber) + if shieldPower <= 0 then + suspendShield(shieldUnitID) removeCoveredUnits(shieldUnitID) end else shieldData.shieldDamage = 0 end - shieldCheckFlags[shieldUnitID] = nil end - end - for shieldUnitID, shieldData in pairs(shieldUnitsData) do - if frame % Game.gameSpeed == 0 then - if select(2, spGetUnitIsStunned(shieldUnitID)) and shieldData.downtimeReset ~= 0 then - shieldData.downtimeReset = shieldData.downtimeReset + 1 - end - end - if frame % 10 == 0 then - if not spGetUnitIsActive(shieldUnitID) then + for shieldUnitID, shieldData in pairs(shieldUnitsData) do + local shieldActive = spGetUnitIsActive(shieldUnitID) + + if frame % shieldModulo == 0 then + if shieldActive then + if shieldData.overKillDamage ~= 0 then + local usedEnergy = spUseUnitResource(shieldUnitID, "e", shieldData.shieldPowerRegenEnergy) + if usedEnergy then + shieldData.overKillDamage = shieldData.overKillDamage + shieldData.shieldPowerRegen + end + end + else + --if shield is manually turned off, set shield charge to 0 spSetUnitShieldState(shieldUnitID, shieldData.shieldWeaponNumber, 0) end - if not shieldData.shieldEnabled and shieldData.downtimeReset ~= 0 and shieldData.downtimeReset <= gameSeconds then - shieldData.downtimeReset = 0 - shieldData.shieldEnabled = true - spSetUnitShieldRechargeDelay(shieldUnitID, shieldData.shieldWeaponNumber, 0) - - -- This section is to allow slower moving projectiles already inside the shield when it comes back online to damage units within the radius. - local x, y, z = spGetUnitPosition(shieldUnitID) - -- Engine has GetProjectilesInRectangle, but not GetProjectilesInCircle, so we have to square the circle - -- TODO: Change to GetProjectilesInCircle once it is added - local radius = shieldData.radius * math.sqrt(math.pi) / 2 - local xmin = x - radius - local xmax = x + radius - local zmin = z - radius - local zmax = z + radius - local projectiles = spGetProjectilesInRectangle(xmin, zmin, xmax, zmax) - for _, projectileID in ipairs(projectiles) do - projectileShieldHitCache[projectileID] = true + + if not shieldData.shieldEnabled and shieldData.shieldDownTime < frame and shieldData.overKillDamage >= 0 then + if shieldData.overKillDamage > 0 then + spSetUnitShieldState(shieldUnitID, shieldData.shieldWeaponNumber, shieldData.overKillDamage) + shieldData.overKillDamage = 0 end + activateShield(shieldUnitID) + + elseif shieldData.maxDownTime < frame then + activateShield(shieldUnitID) + shieldData.overKillDamage = 0 end end end @@ -261,8 +371,9 @@ function gadget:GameFrame(frame) shieldUnitIndex[shieldUnitsTotalCount] = shieldUnitID end - shieldCheckChunkSize = math.max(math.ceil(shieldUnitsTotalCount / 4), 1) + shieldCheckChunkSize = mathMax(mathCeil(shieldUnitsTotalCount / 4), 1) end + if frame % 11 == 7 then for i = lastShieldCheckedIndex, shieldCheckEndIndex do local shieldUnitID = shieldUnitIndex[i] @@ -290,11 +401,27 @@ function gadget:GameFrame(frame) end end -function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer, weaponDefID, projectileID, attackerID, attackerDefID, attackerTeam) +function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer, weaponDefID, projectileID, attackerID, + attackerDefID, attackerTeam) + if not reworkEnabled then return end --remove when shield rework is permanent if not AOEWeaponDefIDs[weaponDefID] or projectileShieldHitCache[projectileID] then return damage end + local directHitThreshold = highestWeapDefDamages[weaponDefID] + if directHitThreshold then + local armoredMultiple = armoredUnitDefs[unitDefID] + if armoredMultiple then + local isArmored = spGetUnitArmored(unitID) + if isArmored and damage >= directHitThreshold * armoredMultiple then + return damage + end + end + if damage >= directHitThreshold then + return damage + end + end + if shieldNegatesDamageCheck(unitID, unitTeam, attackerID, attackerTeam) then return 0, 0 else @@ -302,86 +429,88 @@ function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer, w end end -function gadget:ShieldPreDamaged(proID, proOwnerID, shieldWeaponNum, shieldUnitID, bounceProjectile, beamEmitterWeaponNum, beamEmitterUnitID, startX, startY, startZ, hitX, hitY, hitZ) - local shieldData = shieldUnitsData[shieldUnitID] +function gadget:ShieldPreDamaged(proID, proOwnerID, shieldWeaponNum, shieldUnitID, bounceProjectile, beamEmitterWeaponNum, + beamEmitterUnitID, startX, startY, startZ, hitX, hitY, hitZ) local weaponDefID + if not reworkEnabled then --this section is added for when shield rework isn't enabled, but any shields are able to block all projectiles. <<< + if proID > -1 then + weaponDefID = projectileDefIDCache[proID] or spGetProjectileDefID(proID) + if forceDeleteWeapons[weaponDefID] then + -- Flames and penetrating projectiles aren't destroyed when they hit shields, so need to delete manually + spDeleteProjectile(proID) + end + end + else -- >>> + local shieldData = shieldUnitsData[shieldUnitID] + if not shieldData or not shieldData.shieldEnabled then + return true + end - if not shieldData or not shieldData.shieldEnabled then - return true - end - - shieldData.shieldWeaponNumber = shieldWeaponNum - - -- proID isn't nil if hitscan weapons are used, it's actually -1. - if proID > -1 then - weaponDefID = projectileDefIDCache[proID] or spGetProjectileDefID(proID) - local newShieldDamage = originalShieldDamages[weaponDefID] or fallbackShieldDamage - shieldData.shieldDamage = shieldData.shieldDamage + newShieldDamage + -- proID isn't nil if hitscan weapons are used, it's actually -1. + if proID > -1 then + weaponDefID = projectileDefIDCache[proID] or spGetProjectileDefID(proID) + local newShieldDamage = originalShieldDamages[weaponDefID] or fallbackShieldDamage + shieldData.shieldDamage = shieldData.shieldDamage + newShieldDamage + if forceDeleteWeapons[weaponDefID] then + -- Flames and penetrating projectiles aren't destroyed when they hit shields, so need to delete manually + spDeleteProjectile(proID) + end + elseif beamEmitterUnitID then + local beamEmitterUnitDefID = unitDefIDCache[beamEmitterUnitID] - if forceDeleteWeapons[weaponDefID] then - -- Flames aren't destroyed when they hit shields, so need to delete manually - spDeleteProjectile(proID) - end - elseif beamEmitterUnitID then - local beamEmitterUnitDefID = unitDefIDCache[beamEmitterUnitID] + if not beamEmitterUnitDefID then + return false + end - if not beamEmitterUnitDefID then - return false + weaponDefID = UnitDefs[beamEmitterUnitDefID].weapons[beamEmitterWeaponNum].weaponDef + shieldData.shieldDamage = (shieldData.shieldDamage + originalShieldDamages[weaponDefID]) end - weaponDefID = UnitDefs[beamEmitterUnitDefID].weapons[beamEmitterWeaponNum].weaponDef - shieldData.shieldDamage = (shieldData.shieldDamage + originalShieldDamages[weaponDefID]) - end - - shieldCheckFlags[shieldUnitID] = true + shieldCheckFlags[shieldUnitID] = true - if shieldData.shieldEnabled then - if not shieldData.shieldCoverageChecked and AOEWeaponDefIDs[weaponDefID] then - setCoveredUnits(shieldUnitID) + if shieldData.shieldEnabled then + if not shieldData.shieldCoverageChecked and AOEWeaponDefIDs[weaponDefID] then + setCoveredUnits(shieldUnitID) + end + else + removeCoveredUnits(shieldUnitID) end - else - removeCoveredUnits(shieldUnitID) end end - -do - ---Shield controller API for other gadgets to generate and process their own shield damage events. - local function addShieldDamage(shieldUnitID, shieldWeaponNumber, damage, weaponDefID, projectileID, beamEmitterWeaponNum, beamEmitterUnitID) - local projectileDestroyed, damageMitigated = false, 0 - if not beamEmitterUnitID and beamEmitterWeapons[weaponDefID] then - beamEmitterUnitID, beamEmitterWeaponNum = unpack(beamEmitterWeapons[weaponDefID]) - end - local shieldData = shieldUnitsData[shieldUnitID] - if shieldData and shieldData.shieldEnabled then - if shieldData.shieldWeaponNumber == -1 and not shieldWeaponNumber then - return - end - local shieldDamage = shieldData.shieldDamage - local result = gadget:ShieldPreDamaged(projectileID, nil, shieldWeaponNumber, shieldUnitID, nil, beamEmitterWeaponNum, beamEmitterUnitID) - if result == nil then - projectileDestroyed = true - if damage then - shieldData.shieldDamage = shieldDamage + damage - damageMitigated = damage - else - damageMitigated = shieldData.shieldDamage - shieldDamage - end +---Shield controller API for other gadgets to generate and process their own shield damage events. +local function addShieldDamage(shieldUnitID, damage, weaponDefID, projectileID, beamEmitterWeaponNum, beamEmitterUnitID) + local projectileDestroyed, damageMitigated = false, 0 + if not beamEmitterUnitID and beamEmitterWeapons[weaponDefID] then + beamEmitterUnitID, beamEmitterWeaponNum = unpack(beamEmitterWeapons[weaponDefID]) + end + local shieldData = shieldUnitsData[shieldUnitID] + if shieldData and shieldData.shieldEnabled then + local shieldDamage = shieldData.shieldDamage + local result = gadget:ShieldPreDamaged(projectileID, nil, shieldData.shieldWeaponNumber, shieldUnitID, nil, + beamEmitterWeaponNum, beamEmitterUnitID) + if result == nil then + projectileDestroyed = true + if damage then + shieldData.shieldDamage = shieldDamage + damage + damageMitigated = damage + else + damageMitigated = shieldData.shieldDamage - shieldDamage end end - return projectileDestroyed, damageMitigated end + return projectileDestroyed, damageMitigated +end - function gadget:Initialize() - GG.AddShieldDamage = addShieldDamage +function gadget:Initialize() + GG.AddShieldDamage = addShieldDamage - for _, unitID in ipairs(Spring.GetAllUnits()) do - local unitDefID = Spring.GetUnitDefID(unitID) - local unitTeam = Spring.GetUnitTeam(unitID) - gadget:UnitFinished(unitID, unitDefID, unitTeam) - end + for _, unitID in ipairs(Spring.GetAllUnits()) do + local unitDefID = Spring.GetUnitDefID(unitID) + local unitTeam = Spring.GetUnitTeam(unitID) + gadget:UnitFinished(unitID, unitDefID, unitTeam) end end function gadget:ShutDown() GG.AddShieldDamage = nil -end +end \ No newline at end of file diff --git a/luarules/gadgets/unit_stockpile_limit.lua b/luarules/gadgets/unit_stockpile_limit.lua index a9ee98ff996..c4150c92aea 100644 --- a/luarules/gadgets/unit_stockpile_limit.lua +++ b/luarules/gadgets/unit_stockpile_limit.lua @@ -19,87 +19,7 @@ if gadgetHandler:IsSyncedCode() then local StockpileDesiredTarget = {} local defaultStockpileLimit = 99 - local isStockpilingUnitNames = { -- number represents maximum stockpile. You can also use stockpileLimit customParam which overwrites whatever is set in this table - ['armmercury'] = 5, - ['corscreamer'] = 5, - - ['armthor'] = 2, - - ['legmos'] = 8, - ['legmost3'] = 8, - ['legmineb'] = 1, - ['legsrailt4'] = 3, - - ['armsilo'] = 10, - ['corsilo'] = 10, - ['legsilo'] = 10, - ['cordesolator'] = 10, - ['armseadragon'] = 10, - - - ['armamd'] = 20, - ['legabm'] = 20, - ['corfmd'] = 20, - ['raptor_turret_antinuke_t2_v1'] = 5, - ['raptor_turret_antinuke_t3_v1'] = 10, - - ['armjuno'] = 20, - ['corjuno'] = 20, - - ['armcarry'] = 20, - ['corcarry'] = 20, - - ['armantiship'] = 20, - ['corantiship'] = 20, - - ['armscab'] = 20, - ['cormabm'] = 20, - - ['armemp'] = 10, - ['cortron'] = 10, - ['legperdition'] = 10, - - ['armbotrail'] = 50, - ['armcomlvl2'] = 3, - ['armcomlvl3'] = 3, - ['armdecomlvl3'] = 1, - ['armcomlvl4'] = 3, - ['armcomlvl5'] = 4, - ['armcomlvl6'] = 4, - ['armdecomlvl6'] = 2, - ['armcomlvl7'] = 4, - ['armcomlvl8'] = 5, - ['armcomlvl9'] = 5, - ['armcomlvl10'] = 5, - ['armdecomlvl10'] = 2, - ['legcom'] = 2, - ['legcomlvl2'] = 3, - ['legcomlvl3'] = 3, - ['legdecomlvl3'] = 1, - ['legcomlvl4'] = 3, - ['legcomlvl5'] = 4, - ['legcomlvl6'] = 4, - ['legdecomlvl6'] = 2, - ['legcomlvl7'] = 4, - ['legcomlvl8'] = 5, - ['legcomlvl9'] = 5, - ['legcomlvl10'] = 5, - ['legdecomlvl10'] = 3, - - ['legstarfall'] = 1, - ['legrampart'] = 20, - } - -- convert unitname -> unitDefID + add scavengers - local isStockpilingUnit = {} - for name, params in pairs(isStockpilingUnitNames) do - if UnitDefNames[name] then - isStockpilingUnit[UnitDefNames[name].id] = params - if UnitDefNames[name..'_scav'] then - isStockpilingUnit[UnitDefNames[name..'_scav'].id] = params - end - end - end - isStockpilingUnitNames = nil + local unitStockpileLimit = {} ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @@ -112,15 +32,18 @@ if gadgetHandler:IsSyncedCode() then if ud.canStockpile then canStockpile[udid] = true end - if ud.customParams and ud.customParams.stockpileLimit then - isStockpilingUnit[udid] = tonumber(ud.customParams.stockpileLimit) - elseif ud.customParams and ud.customParams.stockpilelimit then - isStockpilingUnit[udid] = tonumber(ud.customParams.stockpilelimit) + if ud.weapons then + for i = 1, #ud.weapons do + local weaponDef = WeaponDefs[ud.weapons[i].weaponDef] + if weaponDef.stockpile and weaponDef.customParams and weaponDef.customParams.stockpilelimit then + unitStockpileLimit[udid] = tonumber(weaponDef.customParams.stockpilelimit) + end + end end end function UpdateStockpile(unitID, unitDefID) - local MaxStockpile = math.max(math.min(isStockpilingUnit[unitDefID] or defaultStockpileLimit, StockpileDesiredTarget[unitID]), 0) + local MaxStockpile = math.max(math.min(unitStockpileLimit[unitDefID] or defaultStockpileLimit, StockpileDesiredTarget[unitID]), 0) local stock,queued = GetUnitStockpile(unitID) if queued and stock then @@ -181,7 +104,7 @@ if gadgetHandler:IsSyncedCode() then if fromLua == true and fromSynced == true then -- fromLua is *true* if command is sent from a gadget and *false* if it's sent by a player. return true else - StockpileDesiredTarget[unitID] = math.max(math.min(StockpileDesiredTarget[unitID] + addQ, isStockpilingUnit[unitDefID] or defaultStockpileLimit), 0) -- let's make sure desired target doesn't go above maximum of this unit, and doesn't go below 0 + StockpileDesiredTarget[unitID] = math.max(math.min(StockpileDesiredTarget[unitID] + addQ, unitStockpileLimit[unitDefID] or defaultStockpileLimit), 0) -- let's make sure desired target doesn't go above maximum of this unit, and doesn't go below 0 UpdateStockpile(unitID, unitDefID) return false end @@ -192,14 +115,14 @@ if gadgetHandler:IsSyncedCode() then function gadget:UnitCreated(unitID, unitDefID, unitTeam) if canStockpile[unitDefID] then - StockpileDesiredTarget[unitID] = isStockpilingUnit[unitDefID] or defaultStockpileLimit + StockpileDesiredTarget[unitID] = unitStockpileLimit[unitDefID] or defaultStockpileLimit UpdateStockpile(unitID, unitDefID) end end function gadget:UnitGiven(unitID, unitDefID, unitTeam) if canStockpile[unitDefID] then - StockpileDesiredTarget[unitID] = isStockpilingUnit[unitDefID] or defaultStockpileLimit + StockpileDesiredTarget[unitID] = unitStockpileLimit[unitDefID] or defaultStockpileLimit UpdateStockpile(unitID, unitDefID) end end diff --git a/luarules/gadgets/unit_sunfacing.lua b/luarules/gadgets/unit_sunfacing.lua index 799027321b3..180ab409827 100644 --- a/luarules/gadgets/unit_sunfacing.lua +++ b/luarules/gadgets/unit_sunfacing.lua @@ -1,6 +1,3 @@ --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- - function gadget:GetInfo() return { name = "Sunfacer", @@ -16,56 +13,25 @@ end if not gadgetHandler:IsSyncedCode() then return false end -local sundir -local success -local mapinfo -success = false -local function solarpoint(unitID, unitDefID, team) - - if success then +local sundir, mapinfo +local success = false - local sunheading = math.atan2(sundir[1], sundir[3]) * ((COBSCALE / math.deg(math.tau)) / math.pi)--WIZARDRY INTENSIFIES (182.04) +local function solarpoint(unitID, unitDefID, team) + if success then + local sunheading = math.atan2(sundir[1], sundir[3]) * ((COBSCALE / math.deg(math.tau)) / math.pi) -- WIZARDRY INTENSIFIES (182.04) Spring.CallCOBScript(unitID, "solarreturn", 3, 1, sunheading) else Spring.CallCOBScript(unitID, "solarreturn", 3, 0, 0) end - return 1 end - - - function gadget:Initialize() - gadgetHandler:RegisterGlobal("solarpoint", solarpoint) - if UnitDefNames.armadvsol then - local advsols = {} - advsols[UnitDefNames.armadvsol.id] = true - - if (UnitDefNames.armadvsol_scav) then - advsols[UnitDefNames.armadvsol_scav.id] = true - end - - --only look for advsols that care about the sun (coradvsol sun agnostic chad) - if (UnitDefNames.legadvsol) then - advsols[UnitDefNames.legadvsol.id] = true - end - - if (UnitDefNames.legadvsol_scav) then - advsols[UnitDefNames.legadvsol_scav.id] = true - end - - success, mapinfo = pcall(VFS.Include,"mapinfo.lua") - - if success and mapinfo then - sundir = mapinfo.lighting.sundir - end - - - else - gadgetHandler:RemoveGadget(self) + success, mapinfo = pcall(VFS.Include,"mapinfo.lua") + if success and mapinfo then + sundir = mapinfo.lighting.sundir end -end \ No newline at end of file +end diff --git a/luarules/gadgets/unit_weapon_smart_select_helper.lua b/luarules/gadgets/unit_weapon_smart_select_helper.lua new file mode 100644 index 00000000000..e08740c60d2 --- /dev/null +++ b/luarules/gadgets/unit_weapon_smart_select_helper.lua @@ -0,0 +1,244 @@ +function gadget:GetInfo() + return { + name = "Weapon Smart Select", + desc = "Integrates with smart_weapon_select.h and animation scripts to switch firing modes.", + author = "SethDGamre", + date = "2024.12.7", + license = "GNU GPL, v2 or later", + layer = 1, --must layer after unit_set_target_by_type.lua + enabled = true + } +end + +if not gadgetHandler:IsSyncedCode() then return end + +--[[ +Integration Checklist: +1. Weapon def custom params + smart_priority | true for the higher priority smart select weapon. + smart_backup | = true for the fallback smart select weapon, used when smart_backup cannot shoot a target. + smart_trajectory_checker | true for the weapon that should be used for trajectory checks for the priorityWeapon. Ideally this is a static point slightly lower than preferred_weapon. +3. This requires integration into the unit's animation .bos script to work. Follow the instructions in "smart_weapon_select.h" .bos header. + +****OPTIONAL***** +use Weapon def custom param smart_misfire_frames | to override the default reloadtime derivative frames misfire threshold. +This may be necessary if the turret's turn speed is so slow it triggers false misfires. +]] + +--static +local frameCheckModulo = Game.gameSpeed -- once per second is sufficient +local aggroDecayRate = 0.65 --aggro is multiplied by this until it falls within priority aiming state range +local aggroDecayCap = 10 -- this caps the aggro decay so that misfire state can last a significant amount of time +local aggroPriorityCap = 8 * aggroDecayCap --The maximum aggro that can be accumulated. This prevents manual targetting from getting stuck in a fire mode for too long. +local aggroBackupCap = 4 * aggroDecayCap * -1 --Like above, but a negative value because backup is triggered with negative aggro. + +--misfire occurs when the weapon thinks it can shoot a target due to faulty Spring.GetUnitWeaponHaveFreeLineOfFire return values. We must detect when this failure occurs and force high for a long duration. +local misfireMultiplier = Game.gameSpeed * 1.5 +local minimumMisfireFrames = Game.gameSpeed * 7 +local misfireTallyDecayRate = 0.985 -- the misfire penalty that makes the misfire state last longer the more cumulative times it happens decays at this rate +local misfireMultiplierAddition = 1 -- every time the misfire happens, it increases by this number. The tally is squared to make each cumulative misfire exponentially more punishing +local minMisfireTally = 2 -- This is used to prevent misfire from being super punishing the first few times it triggers. +local backupMisfireAggro = -200 --how much aggro is given multiplied by the misfireTallyMultiplier^2 when priority weapon fails to fire. + +local priorityAutoAggro = 12 -- how much aggro is accumulated per frameCheckModulo that the priority weapon successfully aims +local priorityManualAggro = 24 -- how much aggro is accumulated per frameCheckModulo that the priority weapon successfully aims with a manually assigned target +local prioritySwitchThreshold = -1 --the aggro at which priority weapon switch is triggered. Aggro is decayed closer to 0 every frameCheckModulo + +local backupAutoAggro = 4 -- how much aggro is accumulated per frameCheckModulo that the priority weapon fails to aim +local backupManualAggro = 16 --how much aggro is accumulated per frameCheckModulo that the priority weapon fails to aim with a manually assigned target +local backupSwitchThreshold = backupAutoAggro * 2.4 * -1 --the aggro at which backup weapon switch is triggered. Aggro is decayed closer to 0 every frameCheckModulo + +local PRIORITY_AIMINGSTATE = 1 +local BACKUP_AIMINGSTATE = 2 +local UNIT_TARGET = 1 +local GROUND_TARGET = 2 + +--variables +local gameFrame = 0 + +--functions +local spCallCOBScript = Spring.CallCOBScript +local spGetUnitWeaponHaveFreeLineOfFire = Spring.GetUnitWeaponHaveFreeLineOfFire +local spGetUnitWeaponTarget = Spring.GetUnitWeaponTarget +local spGetUnitWeaponState = Spring.GetUnitWeaponState +local spGetUnitEstimatedPath = Spring.GetUnitEstimatedPath +local mathMin = math.min +local mathMax = math.max + +local smartUnits = {} +local smartUnitDefs = {} + +function gadget:Initialize() + local units = Spring.GetAllUnits() + local spGetUnitDefID = Spring.GetUnitDefID + for i = 1, #units do + gadget:UnitCreated(units[i], spGetUnitDefID(units[i])) + end +end + +for unitDefID, def in ipairs(UnitDefs) do + if def.weapons then + local weapons = def.weapons + for weaponNumber, weaponData in pairs(weapons) do + local weaponDefID = weapons[weaponNumber].weaponDef + if WeaponDefs[weaponDefID] and WeaponDefs[weaponDefID].customParams then + if WeaponDefs[weaponDefID].customParams.smart_priority then + smartUnitDefs[unitDefID] = smartUnitDefs[unitDefID] or {} + smartUnitDefs[unitDefID].priorityWeapon = weaponNumber + smartUnitDefs[unitDefID].failedToFireFrameThreshold = WeaponDefs[weaponDefID].customParams.smart_misfire_frames or mathMax(WeaponDefs[weaponDefID].reload * misfireMultiplier, minimumMisfireFrames) + if def.speed and def.speed ~= 0 then + smartUnitDefs[unitDefID].canMove = true + end + end + if WeaponDefs[weaponDefID].customParams.smart_backup then + smartUnitDefs[unitDefID] = smartUnitDefs[unitDefID] or {} + smartUnitDefs[unitDefID].backupWeapon = weaponNumber + end + if WeaponDefs[weaponDefID].customParams.smart_trajectory_checker then + smartUnitDefs[unitDefID] = smartUnitDefs[unitDefID] or {} + smartUnitDefs[unitDefID].trajectoryCheckWeapon = weaponNumber + end + end + end + end +end + +--custom functions +local function failureToFireCheck(attackerID, data, defData) + if not data.suspendMisfireUntilFrame or data.aggroBias < prioritySwitchThreshold then return false end + + if data.failedShotFrame < gameFrame - defData.failedToFireFrameThreshold then + data.failedShotFrame = mathMax( + spGetUnitWeaponState(attackerID, defData.priorityWeapon, 'reloadFrame'), + spGetUnitWeaponState(attackerID, defData.backupWeapon, 'reloadFrame') + ) + end + + if data.failedShotFrame < gameFrame - defData.failedToFireFrameThreshold and + gameFrame > data.suspendMisfireUntilFrame then + return true + else + return false + end +end + +local function handleMisfire(data, defData) + data.misfireTallyMultiplier = data.misfireTallyMultiplier + misfireMultiplierAddition + + if data.misfireTallyMultiplier < minMisfireTally then + data.aggroBias = aggroBackupCap + else + data.aggroBias = backupMisfireAggro * data.misfireTallyMultiplier ^ data.misfireTallyMultiplier + end + + data.suspendMisfireUntilFrame = gameFrame + defData.failedToFireFrameThreshold +end + +local function updateAimingState(attackerID) + local data = smartUnits[attackerID] + local defData = smartUnitDefs[data.unitDefID] + + -- Get target information for the priority and backup weapons + local priorityTargetType, priorityIsUserTarget, priorityTarget = spGetUnitWeaponTarget(attackerID, defData.priorityWeapon) + local backupIsUserTarget, backupTarget = select(2, spGetUnitWeaponTarget(attackerID, defData.backupWeapon)) + + -- Determine if the priority weapon can shoot the target + local priorityCanShoot = false + --we store some aspect of the target number to see if it matches last check's target. Used to reset a misfire condition. + local newMatchTargetNumber = 0 --the engine equivalent of nil is 0 here. + + if priorityTargetType == UNIT_TARGET then + priorityCanShoot = spGetUnitWeaponHaveFreeLineOfFire(attackerID, defData.trajectoryCheckWeapon, priorityTarget) + newMatchTargetNumber = priorityTarget + elseif priorityTargetType == GROUND_TARGET then + priorityCanShoot = spGetUnitWeaponHaveFreeLineOfFire(attackerID, defData.trajectoryCheckWeapon, nil, nil, nil, priorityTarget[1], priorityTarget[2], priorityTarget[3]) + newMatchTargetNumber = priorityTarget[1] + end + + -- prevent misfire from triggering when a target is first acquired from idle state + if backupTarget or priorityTarget then + if data.suspendMisfireUntilFrame and newMatchTargetNumber ~= 0 and newMatchTargetNumber ~= data.lastTargetMatchNumber then + data.lastTargetMatchNumber = newMatchTargetNumber + data.suspendMisfireUntilFrame = gameFrame + defData.failedToFireFrameThreshold + elseif not data.suspendMisfireUntilFrame then + data.suspendMisfireUntilFrame = gameFrame + defData.failedToFireFrameThreshold + end + elseif not backupTarget and not priorityTarget then + data.suspendMisfireUntilFrame = nil + end + + -- check if priority weapon is stuck trying to aim but failing to fire when it should + local failureToFire = false + if defData.canMove then + if not spGetUnitEstimatedPath(attackerID) then -- If it's moving, it might fail to shoot or gain LOS from movement + failureToFire = failureToFireCheck(attackerID, data, defData) + end + else + failureToFire = failureToFireCheck(attackerID, data, defData) + end + + -- add or subtract aggro based on weapon targetting conditions + if priorityIsUserTarget and priorityCanShoot then + if failureToFire then + handleMisfire(data, defData) + else + if data.aggroBias < aggroBackupCap then --if a misfire happened and a manual command is issued, we want to ensure it isn't stuck in backup mode. + data.aggroBias = aggroBackupCap + else + data.aggroBias = mathMin(data.aggroBias + priorityManualAggro, aggroPriorityCap) + end + end + elseif backupIsUserTarget then + data.aggroBias = mathMax(data.aggroBias - backupManualAggro, aggroBackupCap) + else + if failureToFire then + handleMisfire(data, defData) + elseif priorityCanShoot then + data.aggroBias = mathMin(data.aggroBias + priorityAutoAggro, aggroPriorityCap) + elseif backupIsUserTarget ~= nil and data.aggroBias > aggroBackupCap then + data.aggroBias = mathMax(data.aggroBias - backupAutoAggro, aggroBackupCap) + end + end + + -- Switch aiming state based on aggro bias thresholds + if data.aggroBias >= prioritySwitchThreshold then + data.aggroBias = mathMax(data.aggroBias * aggroDecayRate, data.aggroBias - aggroDecayCap) + spCallCOBScript(attackerID, data.setStateScriptID, 0, PRIORITY_AIMINGSTATE) + elseif data.aggroBias < backupSwitchThreshold then + data.aggroBias = mathMin(data.aggroBias * aggroDecayRate, data.aggroBias + aggroDecayCap) + spCallCOBScript(attackerID, data.setStateScriptID, 0, BACKUP_AIMINGSTATE) + else + data.aggroBias = data.aggroBias * aggroDecayRate + end + + -- Decay misfire tally multiplier, so that if the conditions change that caused the misfire it can revert to a normal state over time. + data.misfireTallyMultiplier = data.misfireTallyMultiplier * misfireTallyDecayRate +end + +--call-ins +function gadget:UnitCreated(unitID, unitDefID) + if smartUnitDefs[unitDefID] then + smartUnits[unitID] = { + unitDefID = unitDefID, + setStateScriptID = Spring.GetCOBScriptID(unitID, "SetAimingState"), + aggroBias = 0, + failedShotFrame = 0, + misfireTallyMultiplier = 0, + lastTargetMatchNumber = 0, --this exists so that a player switching targets frequently doesn't trigger a faulty misfire. + } + spCallCOBScript(unitID, smartUnits[unitID].setStateScriptID, 0, smartUnitDefs[unitDefID].priorityWeapon) + end +end + +function gadget:UnitDestroyed(unitID, unitDefID, unitTeam, attackerID, attackerDefID, attackerTeam) + smartUnits[unitID] = nil +end + +function gadget:GameFrame(frame) + if frame % frameCheckModulo == 3 then + gameFrame = frame + for attackerID in pairs(smartUnits) do + updateAimingState(attackerID) + end + end +end diff --git a/luarules/gadgets/unit_workertime_boost.lua b/luarules/gadgets/unit_workertime_boost.lua index 64a48c9e7fe..68e8f56b7ac 100644 --- a/luarules/gadgets/unit_workertime_boost.lua +++ b/luarules/gadgets/unit_workertime_boost.lua @@ -20,6 +20,7 @@ if not gadgetHandler:IsSyncedCode() then return false end local spGetUnitIsBuilding = Spring.GetUnitIsBuilding local spGetUnitDefID = Spring.GetUnitDefID +local spSetUnitRulesParam = Spring.SetUnitRulesParam local boostableUnits = {} local builderWatchDefs = {} local builderWatch = {} @@ -75,9 +76,11 @@ function gadget:GameFrame(frame) end if enableBoost == true then Spring.SetUnitBuildSpeed(id, data.boost) + spSetUnitRulesParam(id, "workertimeBoosted", data.boost) else Spring.SetUnitBuildSpeed(id, data.buildspeed) data.timestamp = frame+60 + spSetUnitRulesParam(id, "workertimeBoosted", 0) end else Spring.SetUnitBuildSpeed(id, data.buildspeed) diff --git a/luarules/gadgets/unit_xmas.lua b/luarules/gadgets/unit_xmas.lua index d07751f54da..d65f5f63449 100644 --- a/luarules/gadgets/unit_xmas.lua +++ b/luarules/gadgets/unit_xmas.lua @@ -259,11 +259,8 @@ function gadget:FeatureCreated(featureID, allyTeam) if xmasFeatureID then Spring.SetFeatureRotation(xmasFeatureID, rx,ry,rz) Spring.SetFeatureDirection(xmasFeatureID, dx,dy,dz) - local comtype = 'armcom' - if string.find(FeatureDefs[Spring.GetFeatureDefID(featureID)].modelname:lower(), 'corcom', nil, true) then - comtype = 'corcom' - end - Spring.SetFeatureResurrect(xmasFeatureID, comtype, "s", 0) + local featureResurrect = Spring.GetFeatureResurrect(featureID) + Spring.SetFeatureResurrect(xmasFeatureID, featureResurrect, "s", 0) end end end diff --git a/luaui/Scenarios/stresstest/circle_attack.lua b/luaui/Scenarios/stresstest/circle_attack.lua new file mode 100644 index 00000000000..4a266b9bb73 --- /dev/null +++ b/luaui/Scenarios/stresstest/circle_attack.lua @@ -0,0 +1,48 @@ +VFS.Include("luaui/Scenarios/stresstest/multi_attack.lua") + +function radius_attack(targetsCenter, nattackers) + local y = Spring.GetGroundHeight(targetsCenter[1], targetsCenter[2]) + local targetPosition = {targetsCenter[1], y+5, targetsCenter[2], targetsCenter[3]} + + local CMD_ATTACK = CMD.ATTACK + + -- get units + local spGetUnitDefID = Spring.GetUnitDefID + + local attackers = table.new and table.new(nattackers) or {} + local attackerDefID = UnitDefNames[Scenario.attackerDef].id + + local all_units = Spring.GetAllUnits() + for _, unitID in ipairs(all_units) do + local unitDefID = spGetUnitDefID(unitID) + if unitDefID == attackerDefID then + attackers[#attackers+1] = unitID + end + end + + -- give order + Spring.SelectUnitArray(attackers) + Spring.GiveOrder(CMD_ATTACK, targetPosition, 0) + Spring.SelectUnitArray({}) +end + +function test() + local t0 = os.clock() + + local nattackers = 100*Scenario.stressLevel + local ntargets = 100*Scenario.stressLevel + local attackerDef = Scenario.attackerDef + local targetDef = Scenario.targetDef + local radarDef = Scenario.radarDef + local doCircle = true + + local circle = SyncedRun(synced_setup) + Spring.Echo("init time preinit:", os.clock()-t0) + + Test.waitFrames(1) + + radius_attack(circle, nattackers) + + Spring.Echo("total time:", os.clock()-t0) +end + diff --git a/luaui/Scenarios/stresstest/multi_attack.lua b/luaui/Scenarios/stresstest/multi_attack.lua new file mode 100644 index 00000000000..cde8365d094 --- /dev/null +++ b/luaui/Scenarios/stresstest/multi_attack.lua @@ -0,0 +1,135 @@ + +function skip() + return Spring.GetGameFrame() <= 0 +end + +function scenario_arguments() + return {{stressLevel = 1}, {attackerDef = "armpw"}, {targetDef = "armwin"}, {radarDef = "armarad"}} +end + +function setup() + -- test on quicksilver remake 1.24 + Test.clearMap() + + Spring.SetCameraTarget(Game.mapSizeX/2, 50, Game.mapSizeZ / 2 - 500, 0.5) +end + +function synced_setup(locals) + local function createUnitAt(unitdefname, x, z, teamID) + local y = Spring.GetGroundHeight(x, z) + return Spring.CreateUnit(unitdefname, x, y, z, 1, teamID) + end + + local doCircle = locals.doCircle + local colattackers = 10 + local coltargets = 20 + local rowattackers = math.floor(locals.nattackers/colattackers) + local rowtargets = math.floor(locals.ntargets/coltargets) + local attackerDef = locals.attackerDef + local targetDef = locals.targetDef + + local x, z = Game.mapSizeX / 2, Game.mapSizeZ / 2 + x = x+450 + + local team1 = 0 + local team2 = 1 + local sep = 40 + local currunit + local attackers = {} + local circle + if doCircle then + -- when circle requested just return the targets center and radius + local maxX = (coltargets*sep)/2.0 + local maxZ = (rowtargets*sep)/2.0 + local targetsCenter = {x-1500+maxX, z-maxZ} + local radius = math.sqrt(maxX*maxX + maxZ*maxZ) + circle = {targetsCenter[1], targetsCenter[2], radius} + end + + createUnitAt(locals.radarDef, x-1000, z+300, team1) + + for i=0, colattackers-1 do + for j=0, rowattackers-1 do + currunit = createUnitAt(attackerDef, x+i*sep, z-j*sep, team1) + attackers[#attackers+1] = currunit + end + end + + for i=0, coltargets-1 do + for j=0, rowtargets-1 do + createUnitAt(targetDef, x-1500+i*sep, z-j*sep, team2) + end + end + -- make sure the attackers don't have other orders + for _, unitID in pairs(attackers) do + Spring.GiveOrderToUnit(unitID, CMD.STOP, 0, 0) + end + return circle +end + +function run_commands(nattackers, ntargets, attackerDef, targetDef) + if type(nattackers) == 'table' then + -- comes from SyncedRun + locals = nattackers + ntargets = locals.ntargets + attackerDef = locals.attackerDef + targetDef = locals.targetDef + nattackers = locals.nattackers + end + local shiftOpts = {"shift"} + local currOpt + local CMD_ATTACK = CMD.ATTACK + local spGiveOrderToUnit = Spring.GiveOrderToUnit + local attackerTeam = 0 + local defenderTeam = 1 + + -- get units + local spGetUnitDefID = Spring.GetUnitDefID + local spGetUnitTeam = Spring.GetUnitTeam + + local attackers = table.new and table.new(nattackers) or {} + local targets = table.new and table.new(ntargets) or {} + local attackerDefID = UnitDefNames[attackerDef].id + local targetDefID = UnitDefNames[targetDef].id + + local all_units = Spring.GetAllUnits() + for _, unitID in ipairs(all_units) do + local unitDefID = spGetUnitDefID(unitID) + local unitTeamID = spGetUnitTeam(unitID) + if unitDefID == attackerDefID and unitTeamID == attackerTeam then + attackers[#attackers+1] = unitID + elseif unitDefID == targetDefID and unitTeamID == defenderTeam then + targets[#targets+1] = unitID + end + end + + -- give orders + local arr = {} + for _, unitID in pairs(attackers) do + for idx, targetID in pairs(targets) do + currOpt = (idx == 1) and opts or shiftOpts + arr[1] = targetID + spGiveOrderToUnit(unitID, CMD_ATTACK, arr, currOpt) + end + end +end + +function test() + local t0 = os.clock() + + local nattackers = 100*Scenario.stressLevel + local ntargets = 100*Scenario.stressLevel + local attackerDef = Scenario.attackerDef + local targetDef = Scenario.targetDef + local radarDef = Scenario.radarDef + + SyncedRun(synced_setup) + Spring.Echo("init time preinit:", os.clock()-t0) + + Test.waitFrames(1) + + SyncedRun(run_commands) + + Spring.Echo("total time:", os.clock()-t0) +end + diff --git a/luaui/Scenarios/stresstest/multi_unsynced_attack.lua b/luaui/Scenarios/stresstest/multi_unsynced_attack.lua new file mode 100644 index 00000000000..8e901df028d --- /dev/null +++ b/luaui/Scenarios/stresstest/multi_unsynced_attack.lua @@ -0,0 +1,21 @@ +VFS.Include("luaui/Scenarios/stresstest/multi_attack.lua") + +function test() + local t0 = os.clock() + + local nattackers = 100*Scenario.stressLevel + local ntargets = 100*Scenario.stressLevel + local attackerDef = Scenario.attackerDef + local targetDef = Scenario.targetDef + local radarDef = Scenario.radarDef + + SyncedRun(synced_setup) + Spring.Echo("init time preinit:", os.clock()-t0) + + Test.waitFrames(1) + + run_commands(nattackers, ntargets, attackerDef, targetDef) + + Spring.Echo("total time:", os.clock()-t0) +end + diff --git a/luaui/Scenarios/stresstest/nano_commands.lua b/luaui/Scenarios/stresstest/nano_commands.lua new file mode 100644 index 00000000000..c13384325bf --- /dev/null +++ b/luaui/Scenarios/stresstest/nano_commands.lua @@ -0,0 +1,115 @@ + +function skip() + return Spring.GetGameFrame() <= 0 +end + +function scenario_arguments() + return {{stressLevel = 1}, {builderDef = "armnanotc"}, {targetDef = "armwin"}} +end + +function setup() + -- test on quicksilver remake 1.24 + Test.clearMap() + + Spring.SetCameraTarget(Game.mapSizeX/2 + 500, 50, Game.mapSizeZ / 2 - 500, 0.5) +end + +function synced_nano_setup(locals) + local function createUnitAt(unitdefname, x, z, teamID) + local y = Spring.GetGroundHeight(x, z) + return Spring.CreateUnit(unitdefname, x, y, z, 1, teamID) + end + + local colturrets = 5 + local coltargets = 8 + local rowturrets = math.floor(locals.nturrets/colturrets) + local rowtargets = math.floor(locals.ntargets/coltargets) + local turretDef = locals.turretDef + local targetDef = locals.targetDef + + local x, z = Game.mapSizeX / 2, Game.mapSizeZ / 2 + x = x+450 + + local team1 = 0 + local sep = 50 + local currunit + local turrets = {} + for i=0, colturrets-1 do + for j=0, rowturrets-1 do + currunit = createUnitAt(turretDef, x+i*sep-100, z-j*sep, team1) + turrets[#turrets+1] = currunit + end + end + + for i=0, coltargets-1 do + for j=0, rowtargets-1 do + createUnitAt(targetDef, x+350+i*sep, z-j*sep, team1) + end + end + -- make sure the turrets don't have other orders + for _, unitID in pairs(turrets) do + Spring.GiveOrderToUnit(unitID, CMD.STOP, 0, 0) + end +end + +function run_nano_commands(nturrets, ntargets, turretDef, targetDef) + if type(nturrets) == 'table' then + local locals = nturrets + ntargets = locals.ntargets + turretDef = locals.turretDef + targetDef = locals.targetDef + nturrets = locals.nturrets + end + local shiftOpts = {"shift"} + local currOpt + local CMD_RECLAIM = CMD.RECLAIM + local spGiveOrderToUnit = Spring.GiveOrderToUnit + + -- get units + local spGetUnitDefID = Spring.GetUnitDefID + + local turrets = table.new and table.new(nturrets) or {} + local targets = table.new and table.new(ntargets) or {} + local turretDefID = UnitDefNames[turretDef].id + local targetDefID = UnitDefNames[targetDef].id + + local all_units = Spring.GetAllUnits() + for _, unitID in ipairs(all_units) do + local unitDefID = spGetUnitDefID(unitID) + if unitDefID == turretDefID then + turrets[#turrets+1] = unitID + elseif unitDefID == targetDefID then + targets[#targets+1] = unitID + end + end + + -- give orders + local arr = {} + for _, unitID in pairs(turrets) do + for idx, targetID in pairs(targets) do + currOpt = (idx == 1) and opts or shiftOpts + arr[1] = targetID + spGiveOrderToUnit(unitID, CMD_RECLAIM, arr, currOpt) + end + end +end + +function test() + local t0 = os.clock() + + local nturrets = 50*Scenario.stressLevel + local ntargets = 50*Scenario.stressLevel + local turretDef = Scenario.builderDef + local targetDef = Scenario.targetDef + + SyncedRun(synced_nano_setup) + Spring.Echo("init time preinit:", os.clock()-t0) + + Test.waitFrames(1) + + SyncedRun(run_nano_commands) + + Spring.Echo("total time:", os.clock()-t0) +end + + diff --git a/luaui/Scenarios/stresstest/nano_unsynced_commands.lua b/luaui/Scenarios/stresstest/nano_unsynced_commands.lua new file mode 100644 index 00000000000..86b6d5d1011 --- /dev/null +++ b/luaui/Scenarios/stresstest/nano_unsynced_commands.lua @@ -0,0 +1,21 @@ +VFS.Include("luaui/Scenarios/stresstest/nano_commands.lua") + +function test() + local t0 = os.clock() + + local nturrets = 50*Scenario.stressLevel + local ntargets = 50*Scenario.stressLevel + local turretDef = Scenario.builderDef + local targetDef = Scenario.targetDef + + SyncedRun(synced_nano_setup) + Spring.Echo("init time preinit:", os.clock()-t0) + + Test.waitFrames(1) + + run_nano_commands(nturrets, ntargets, turretDef, targetDef) + + Spring.Echo("total time:", os.clock()-t0) +end + + diff --git a/luaui/Scenarios/stresstest/unsynced_attack.lua b/luaui/Scenarios/stresstest/unsynced_attack.lua new file mode 100644 index 00000000000..b7859154f24 --- /dev/null +++ b/luaui/Scenarios/stresstest/unsynced_attack.lua @@ -0,0 +1,31 @@ +VFS.Include("luaui/Scenarios/stresstest/multi_attack.lua") + +function radius_attack(attackers, targetsCenter) + local y = Spring.GetGroundHeight(targetsCenter[1], targetsCenter[2]) + local targetPosition = {targetsCenter[1], y+5, targetsCenter[2], targetsCenter[3]} + + local CMD_ATTACK = CMD.ATTACK + local spGiveOrderToUnit = Spring.GiveOrderToUnit + + Spring.SelectUnitArray(attackers) + Spring.GiveOrder(CMD_ATTACK, targetPosition, 0) +end + +function test() + local t0 = os.clock() + + local nattackers = 100*Scenario.stressLevel + local ntargets = 100*Scenario.stressLevel + local attackerDef = Scenario.attackerDef + local targetDef = Scenario.targetDef + local radarDef = Scenario.radarDef + + local attackers, targetsCenter = SyncedRun(synced_setup) + + Test.waitFrames(1) + + radius_attack(attackers, targetsCenter) + + Spring.Echo("total time:", os.clock()-t0) +end + diff --git a/luaui/Widgets/Include/LuaShader.lua b/luaui/Widgets/Include/LuaShader.lua index d72b59ab371..f89a5601412 100644 --- a/luaui/Widgets/Include/LuaShader.lua +++ b/luaui/Widgets/Include/LuaShader.lua @@ -1,6 +1,6 @@ -local UNIFORM_TYPE_MIXED = 0 -- includes arrays; float or int -local UNIFORM_TYPE_INT = 1 -- includes arrays -local UNIFORM_TYPE_FLOAT = 2 -- includes arrays +local UNIFORM_TYPE_MIXED = 0 -- includes arrays; float or int +local UNIFORM_TYPE_INT = 1 -- includes arrays +local UNIFORM_TYPE_FLOAT = 2 -- includes arrays local UNIFORM_TYPE_FLOAT_MATRIX = 3 local glGetUniformLocation = gl.GetUniformLocation @@ -54,7 +54,7 @@ local function GetAdvShadingActive() end local function GetEngineUniformBufferDefs() - local eubs = [[ + local eubs = [[ layout(std140, binding = 0) uniform UniformMatrixBuffer { mat4 screenView; mat4 screenProj; @@ -143,9 +143,9 @@ mat3 rotation3dY(float a) { float c = cos(a); return mat3( - c, 0.0, -s, - 0.0, 1.0, 0.0, - s, 0.0, c); + c, 0.0, -s, + 0.0, 1.0, 0.0, + s, 0.0, c); } mat3 rotation3dZ(float angle) { @@ -189,7 +189,7 @@ vec2 heightmapUVatWorldPos(vec2 worldpos){ vec2 heightmaptexel = vec2(8.0, 8.0); worldpos += vec2(-8.0, -8.0) * (worldpos * inverseMapSize) + vec2(4.0, 4.0) ; vec2 uvhm = clamp(worldpos, heightmaptexel, mapSize.xy - heightmaptexel); - uvhm = uvhm * inverseMapSize; + uvhm = uvhm * inverseMapSize; return uvhm; } @@ -262,13 +262,13 @@ vec4 waterBlend(float fragmentheight){ waterBaseColorR, waterBaseColorG, waterBaseColorB ) - return eubs .. waterUniforms + return eubs .. waterUniforms end local function CreateShaderDefinesString(args) -- Args is a table of stuff that are the shader parameters local defines = {} for k, v in pairs (args) do - defines[#defines + 1] = string.format("#define %s %s\n", tostring(k), tostring(v)) + defines[#defines + 1] = string.format("#define %s %s\n", tostring(k), tostring(v)) end return table.concat(defines) end @@ -309,111 +309,21 @@ local function CheckShaderUpdates(shadersourcecache, delaytime) shadersourcecache.updateFlag = true local engineUniformBufferDefs = LuaShader.GetEngineUniformBufferDefs() local shaderDefines = LuaShader.CreateShaderDefinesString(shadersourcecache.shaderConfig) - - local printfpattern = "^[^/]*printf%s*%(%s*([%w_%.]+)%s*%)" - local printf = nil - fsSrcNewLines = string.lines(fsSrcNew) - for i, line in ipairs(fsSrcNewLines) do - --Spring.Echo(i,line) - local glslvariable = line:match(printfpattern) - if glslvariable then - --Spring.Echo("printf in fragment shader",i, glslvariable, line) - -- init our printf table - - -- Replace uncommented printf's with the function stub to set the SSBO data for that field - - -- Figure out wether the glsl variable is a float, vec2-4 - local glslvarcount = 1 -- default is 1 - local dotposition = string.find(glslvariable, "%.") - local swizzle = 'x' - if dotposition then - swizzle = string.sub(glslvariable, dotposition+1) - glslvarcount = string.len(swizzle) - end - if glslvarcount>4 then - glslvarcount = 4 - end - if not printf then printf = {} end - printf["vars"] = printf["vars"] or {} - local vardata = {name = glslvariable, count = glslvarcount, line = i, index = #printf["vars"], swizzle = swizzle, shaderstage = 'f'} - table.insert(printf["vars"], vardata) - local replacementstring = string.format('if (all(lessThan(abs(mouseScreenPos.xy- (gl_FragCoord.xy + vec2(0.5, -1.5))),vec2(0.25) ))) { printfData[%i].%s = %s;} //printfData[INDEX] = vertexPos.xyzw;', - vardata.index, string.sub('xyzw', 1, vardata.count), vardata.name - ) - Spring.Echo(string.format("Replacing f:%d %s", i, line)) - fsSrcNewLines[i] = replacementstring - end - end - - -- If any substitutions were made, reassemble the shader source - if printf then - -- Define the shader storage buffer object, with at most SSBOSize entries - printf.SSBOSize = math.max(#printf['vars'], 16) - --Spring.Echo("SSBOSize", printf.SSBOSize) - printf.SSBO = gl.GetVBO(GL.SHADER_STORAGE_BUFFER) - printf.SSBO:Define(printf.SSBOSize, {{id = 0, name = "printfData", size = 4}}) - local initZeros = {} - for i=1, 4 * printf.SSBOSize do initZeros[i] = 0 end - printf.SSBO:Upload(initZeros)--, nil, 0) - - printf.SSBODefinition = [[ - layout (std430, binding = 7) buffer printfBuffer { - vec4 printfData[]; - }; - ]] - - -- Check shader version string and replace if required: - - for i, line in ipairs(fsSrcNewLines) do - if string.find(line, "#version", nil, true) then - if line ~= "#version 430 core" then - Spring.Echo("Replacing shader version", line, "with #version 430 core") - fsSrcNewLines[i] = "" - table.insert(fsSrcNewLines,1, "#version 430 core\n") - break - end - end - end - - -- Add required extensions - - local ssboextensions = {'#extension GL_ARB_shading_language_420pack: require', - '#extension GL_ARB_uniform_buffer_object : require', - '#extension GL_ARB_shader_storage_buffer_object : require'} - for j, ext in ipairs(ssboextensions) do - local found = false - for i, line in ipairs(fsSrcNewLines) do - if string.find(line, ext, nil, true) then - found = true - break - end - end - if not found then - table.insert(fsSrcNewLines, 2, ext) -- insert at position two as first pos is already taken by #version - end - end - - -- Reassemble the shader source by joining on newlines: - fsSrcNew = table.concat(fsSrcNewLines, '\n') - --Spring.Echo(fsSrcNew) - end - if vsSrcNew then vsSrcNew = vsSrcNew:gsub("//__ENGINEUNIFORMBUFFERDEFS__", engineUniformBufferDefs) vsSrcNew = vsSrcNew:gsub("//__DEFINES__", shaderDefines) shadersourcecache.vsSrcComplete = vsSrcNew end + if fsSrcNew then + fsSrcNew = fsSrcNew:gsub("//__ENGINEUNIFORMBUFFERDEFS__", engineUniformBufferDefs) + fsSrcNew = fsSrcNew:gsub("//__DEFINES__", shaderDefines) + shadersourcecache.fsSrcComplete = fsSrcNew + end if gsSrcNew then gsSrcNew = gsSrcNew:gsub("//__ENGINEUNIFORMBUFFERDEFS__", engineUniformBufferDefs) gsSrcNew = gsSrcNew:gsub("//__DEFINES__", shaderDefines) shadersourcecache.gsSrcComplete = gsSrcNew end - - if fsSrcNew then - fsSrcNew = fsSrcNew:gsub("//__ENGINEUNIFORMBUFFERDEFS__", (printf and (engineUniformBufferDefs .. printf.SSBODefinition) or engineUniformBufferDefs)) - fsSrcNew = fsSrcNew:gsub("//__DEFINES__", shaderDefines) - shadersourcecache.fsSrcComplete = fsSrcNew -- the complete subbed cache should be kept as its needed to decipher lines post compilation errors - end local reinitshader = LuaShader( { vertex = vsSrcNew, @@ -429,7 +339,6 @@ local function CheckShaderUpdates(shadersourcecache, delaytime) Spring.Echo(shadersourcecache.shaderName, " recompiled in ", Spring.DiffTimers(Spring.GetTimer(), compilestarttime, true), "ms at", Spring.GetGameFrame(), "success", shaderCompiled or false) end if shaderCompiled then - reinitshader.printf = printf reinitshader.ignoreUnkUniform = true return reinitshader else @@ -455,12 +364,12 @@ function LuaShader:CreateLineTable() --[[ -- self.shaderParams == ({[ vertex = "glsl code" ,] - [ tcs = "glsl code" ,] - [ tes = "glsl code" ,] + [ tcs = "glsl code" ,] + [ tes = "glsl code" ,] [ geometry = "glsl code" ,] [ fragment = "glsl code" ,] - [ uniform = { uniformName = number value, ...} ,] (specify a Lua array as an argument to uniformName to initialize GLSL arrays) - [ uniformInt = { uniformName = number value, ...} ,] (specify a Lua array as an argument to uniformName to initialize GLSL arrays) + [ uniform = { uniformName = number value, ...} ,] (specify a Lua array as an argument to uniformName to initialize GLSL arrays) + [ uniformInt = { uniformName = number value, ...} ,] (specify a Lua array as an argument to uniformName to initialize GLSL arrays) [ uniformFloat = { uniformName = number value, ...} ,] (specify a Lua array as an argument to uniformName to initialize GLSL arrays) [ uniformMatrix = { uniformName = number value, ...} ,] [ geoInputType = number inType,] @@ -473,10 +382,10 @@ function LuaShader:CreateLineTable() local numtoline = {} --try to translate errors that look like this into lines: - -- 0(31048) : error C1031: swizzle mask element not present in operand "ra" - -- 0(31048) : error C1031: swizzle mask element not present in operand "ra" + -- 0(31048) : error C1031: swizzle mask element not present in operand "ra" + -- 0(31048) : error C1031: swizzle mask element not present in operand "ra" --for k, v in pairs(self) do - -- Spring.Echo(k) + -- Spring.Echo(k) --end for _, shadertype in pairs({'vertex', 'tcs', 'tes', 'geometry', 'fragment', 'compute'}) do @@ -545,7 +454,7 @@ function LuaShader:OutputLogEntry(text, isError) if self.logHash[message] == nil then - -- self.logHash[message] = 0 + -- self.logHash[message] = 0 end if false and self.logHash[message] <= self.logEntries then @@ -703,12 +612,6 @@ LuaShader.Finalize = LuaShader.Delete function LuaShader:Activate() if self.shaderObj ~= nil then - -- bind the printf SSBO if present - if self.printf then - local bindingIndex = self.printf.SSBO:BindBufferRange(7) - if bindingIndex <= 0 then Spring.Echo("Failed to bind printfData SSBO for shader", self.shaderName) end - end - self.active = true return glUseShader(self.shaderObj) else @@ -741,67 +644,6 @@ end function LuaShader:Deactivate() self.active = false glUseShader(0) - --Spring.Echo("LuaShader:Deactivate()") - - if self.printf then - --Spring.Echo("self.printf", self.printf) - self.printf.SSBO:UnbindBufferRange(7) - self.printf.bufferData = self.printf.SSBO:Download(-1, 0, nil, true) -- last param is forceGPURead = true - --Spring.Echo(self.printf.bufferData[1],self.printf.bufferData[2],self.printf.bufferData[3],self.printf.bufferData[4]) - - if not self.DrawPrintf then - --Spring.Echo("creating DrawPrintf") - local fontfile3 = "fonts/monospaced/" .. Spring.GetConfigString("bar_font3", "SourceCodePro-Semibold.otf") - local fontSize = 16 - local font3 = WG['fonts'].getFont(fontfile3, 1 , 0.5, 1.0) - - local function DrawPrintf(sometimesself, xoffset) - --Spring.Echo("attempting to draw printf",xoffset) - - xoffset = xoffset or 0 - if type(sometimesself) == 'table' then - xoffset = xoffset or 0 - elseif type(sometimesself) == 'number' then - xoffset = sometimesself - end - - local mx,my = Spring.GetMouseState() - mx = mx + xoffset - my = my - 32 - - gl.PushMatrix() - font3:Begin() - -- Todo: could really use a monospaced font! - --gl.Color(1,1,1,1) - gl.Blending(GL.ONE, GL.ZERO) - for i, vardata in ipairs(self.printf.vars) do - local message - if vardata.count == 1 then - message = string.format("%s:%d %s = %.3f", vardata.shaderstage, vardata.line, vardata.name, self.printf.bufferData[1 + vardata.index * 4]) - elseif vardata.count == 2 then - message = string.format("%s:%d %s = [%.3f, %.3f]", vardata.shaderstage, vardata.line, vardata.name, self.printf.bufferData[1 + vardata.index * 4], self.printf.bufferData[2 + vardata.index * 4]) - elseif vardata.count == 3 then - message = string.format("%s:%d %s = [%10.3f, %10.3f, %10.3f]", vardata.shaderstage, vardata.line, vardata.name, self.printf.bufferData[1 + vardata.index * 4], self.printf.bufferData[2 + vardata.index * 4], self.printf.bufferData[3 + vardata.index * 4]) - elseif vardata.count == 4 then - message = string.format("%s:%d %s = [%.3f, %.3f, %.3f, %.3f]", vardata.shaderstage, vardata.line, vardata.name, self.printf.bufferData[1 + vardata.index * 4], self.printf.bufferData[2 + vardata.index * 4], self.printf.bufferData[3 + vardata.index * 4], self.printf.bufferData[4 + vardata.index * 4]) - end - - my = my - fontSize - local vsx, vsy = Spring.GetViewGeometry() - local alignment = '' - if mx > (vsx - 400) then alignment = 'r' end - --Spring.Echo(my,vsy) - font3:Print(message, math.floor(mx), math.floor(my), fontSize,alignment .."o" ) - end - - gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - gl.PopMatrix() - - font3:End() - end - self.DrawPrintf = DrawPrintf - end - end end @@ -871,7 +713,7 @@ local function isUpdateRequiredNoTable(uniform, u1, u2, u3, u4) if u1 and cachedValues[1] ~= u1 then update = true - cachedValues[1] = val + cachedValues[1] = val end if u2 and cachedValues[2] ~= u2 then update = true @@ -879,11 +721,11 @@ local function isUpdateRequiredNoTable(uniform, u1, u2, u3, u4) end if u3 and cachedValues[3] ~= u3 then update = true - cachedValues[3] = u3 + cachedValues[3] = u3 end if u4 and cachedValues[4] ~= u4 then update = true - cachedValues[4] = u4 + cachedValues[4] = u4 end return update @@ -1068,4 +910,4 @@ function LuaShader:SetUniformMatrix(name, ...) end -----------------============ End of LuaShader uniform manipulation functions ============----------------- -return LuaShader \ No newline at end of file +return LuaShader diff --git a/luaui/Widgets/Include/instancevbotable.lua b/luaui/Widgets/Include/instancevbotable.lua index fd6defbed5c..8c49b03bb49 100644 --- a/luaui/Widgets/Include/instancevbotable.lua +++ b/luaui/Widgets/Include/instancevbotable.lua @@ -1283,11 +1283,11 @@ function MakeTexRectVAO(minX,minY, maxX, maxY, minU, minV, maxU, maxV) rectVBO:Upload({ minX,minY, minU, minV, --bl - minX,maxY, minU, maxV, --tr maxX,maxY, maxU, maxV, --tr + minX,maxY, minU, maxV, --tl maxX,maxY, maxU, maxV, --tr - maxX,minY, maxU, minV, --br minX,minY, minU, minV, --bl + maxX,minY, maxU, minV, --br }) --[[rectVBO:Upload( { diff --git a/luaui/Widgets/Include/select_api.lua b/luaui/Widgets/Include/select_api.lua new file mode 100644 index 00000000000..563256ae0da --- /dev/null +++ b/luaui/Widgets/Include/select_api.lua @@ -0,0 +1,647 @@ +--- @class SelectApi +--- @field getFilter fun(ruleDef: string): table +--- @field unitPassesFilter fun(uid: any, filter: any): boolean +--- @field getCommand fun(cmd: string): any +local SelectApi = {} + +local defaultdamagetag = Game.armorTypes['default'] +local vtoldamagetag = Game.armorTypes['vtol'] + +local spGetUnitIsCloaked = Spring.GetUnitIsCloaked +local spGetCommandQueue = Spring.GetCommandQueue +local spGetUnitDefID = Spring.GetUnitDefID +local spGetUnitGroup = Spring.GetUnitGroup +local spGetUnitHealth = Spring.GetUnitHealth +local spGetMouseState = Spring.GetMouseState +local spTraceScreenRay = Spring.TraceScreenRay +local spIsUnitSelected = Spring.IsUnitSelected +local spGetSelectedUnits = Spring.GetSelectedUnits +local spGetUnitPosition = Spring.GetUnitPosition + +local customFilterLookup = {} +local customCommandLookup = {} + +local filterCache = {} + +local function handleCaching(invert, tokenLower, filterFunction, optionalArg) + if optionalArg == nil then + optionalArg = false + end + + if not filterCache[tokenLower] then + filterCache[tokenLower] = {} + end + + if not filterCache[tokenLower][optionalArg] then + filterCache[tokenLower][optionalArg] = {} + end + + local cache = filterCache[tokenLower][optionalArg] + + return function(udef) + if cache[udef] == nil then + local result = filterFunction(udef, optionalArg) + -- handle invert explicitly here for caching + result = (result or false) ~= invert + cache[udef] = result + end + return cache[udef] + end +end + +local function logError(message) + Spring.Log("Select API", LOG.ERROR, message) +end + +local function isBuilder(udef) + return (udef.canReclaim and udef.reclaimSpeed > 0) or + (udef.canResurrect and udef.resurrectSpeed > 0) or + (udef.canRepair and udef.repairSpeed > 0) or + (udef.buildOptions and udef.buildOptions[1]) or + (udef.canStockpile and udef.modCategories.ship and udef.modCategories.noweapon) -- carrier ships +end + +local function invertCurry(invert, filter, args) + return function(udef, udefid, uid) + local result = filter(udef, udefid, uid, args) + result = (result or false) ~= invert + return result + end +end + +local function simpleUdefFilter(invert, property) + return invertCurry(invert, function(udef) + return udef[property] + end) +end + +local function notEmptyUdefFilter(invert, property) + return invertCurry(invert, function(udef) + local table = udef[property] + if table and next(table) ~= nil then + return true + end + return false + end) +end + +local function checkCmd(uid, cmdId, indexTemp) + local index = indexTemp or 1 + local cmd = spGetCommandQueue(uid, index) + if cmd and cmd[index] and cmd[index]["id"] == cmdId then + return true + end + return false +end + +local function isIdle(udef, _udefid, uid) + return spGetCommandQueue(uid, 0) == CMD.STOP +end + +local function stringContains(mainString, searchString) + return mainString:find(searchString, 1, true) ~= nil +end + +-- filter +local function parseFilter(filterDef) + local tokens = {} + local tokenIndex = 1 + + tokens = filterDef:split("_") + + local function getNextToken() + local token = tokens[tokenIndex] + tokenIndex = tokenIndex + 1 + return token + end + + local filters = {} + local invertIdMatches = nil + local idMatchesSet = {} + + while true do + local invert = false + local token = getNextToken() + + if not token then + break + end + + local tokenLower = string.lower(token) + + if tokenLower == "not" then + invert = true; + token = getNextToken() + tokenLower = string.lower(token) + end + + if not token then + break + end + + -- simple filters + if tokenLower == "aircraft" then + filters.aircraft = simpleUdefFilter(invert, "canFly") + elseif tokenLower == "builder" then + filters.builder = handleCaching(invert, tokenLower, function(udef) + return isBuilder(udef) + end) + elseif tokenLower == "buildoptions" then + filters.buildOptions = notEmptyUdefFilter(invert, "buildOptions") + elseif tokenLower == "building" then + filters.building = simpleUdefFilter(invert, "isBuilding") + elseif tokenLower == "cloak" then + filters.cloak = simpleUdefFilter(invert, "canCloak") + elseif tokenLower == "cloaked" then + filters.cloaked = invertCurry(invert, function(udef, _, uid) + return udef.canCloak and spGetUnitIsCloaked(uid) + end) + elseif tokenLower == "jammer" then + filters.jammer = handleCaching(invert, tokenLower, function(udef) + return udef.jammerRadius > 0 + end) + elseif tokenLower == "manualfireunit" then + filters.manualFire = simpleUdefFilter(invert, "canManualFire") + elseif tokenLower == "radar" then + filters.radar = handleCaching(invert, tokenLower, function(udef) + return udef.radarRadius > 0 or udef.sonarRadius > 0 + end) + elseif tokenLower == "resurrect" then + filters.resurrect = simpleUdefFilter(invert, "canResurrect") + elseif tokenLower == "stealth" then + filters.stealth = simpleUdefFilter(invert, "stealth") + elseif tokenLower == "transport" then + filters.transport = simpleUdefFilter(invert, "isTransport") + elseif tokenLower == "weapons" then + filters.weapons = notEmptyUdefFilter(invert, "weapons") + + -- command queue filters + elseif tokenLower == "idle" then + filters.idle = invertCurry(invert, isIdle) + elseif tokenLower == "guarding" then + filters.guarding = invertCurry(invert, function(_udef, _udefid, uid) + return checkCmd(uid, CMD.GUARD) + end) + elseif tokenLower == "waiting" then + filters.waiting = invertCurry(invert, function(_udef, _udefid, uid) + return checkCmd(uid, CMD.WAIT) + end) + elseif tokenLower == "patrolling" then + filters.patrolling = invertCurry(invert, function(_udef, _udefid, uid) + -- patrol is implemented using the command queue + -- so need to check the first four positions + for i = 1, 4, 1 do + if checkCmd(uid, CMD.PATROL, i) then + return true + end + end + return false + end) + + -- hotkey filters + elseif tokenLower == "inhotkeygroup" then + filters.inHotKeyGroup = invertCurry(invert, function(_, _, uid) + return spGetUnitGroup(uid) ~= nil + end) + elseif tokenLower == "ingroup" then + local group = tonumber(getNextToken()) + if not group then + break + end + + filters.inGroup = invertCurry(invert, function(_, _, uid, selectGroup) + local unitGroup = spGetUnitGroup(uid) + return unitGroup == selectGroup + end, group) + elseif tokenLower == "inprevsel" or tokenLower == "inpreviousselection" then + filters.inPreviousSelection = invertCurry(invert, function(udef, _, uid) + local isSelected = spIsUnitSelected(uid) + return isSelected + end) + + -- number comparison + elseif tokenLower == "absolutehealth" then + local minHealth = tonumber(getNextToken()) + if not minHealth then + break + end + + filters.absoluteHealth = invertCurry(invert, function(_, _, uid, minHealth) + local health = spGetUnitHealth(uid) + return health > minHealth + end, minHealth) + elseif tokenLower == "relativehealth" then + local minHealthPercent = tonumber(getNextToken()) + if not minHealthPercent then + break + end + minHealthPercent = minHealthPercent / 100.0 + + filters.relativeHealth = invertCurry(invert, function(udef, _, uid, minHealthPercent) + local minHealth = minHealthPercent * udef.health + local health = spGetUnitHealth(uid) + return health > minHealth + end, minHealthPercent) + elseif tokenLower == "antiair" then + filters.antiAir = handleCaching(invert, tokenLower, function(udef) + if udef.wDefs == nil or udef.canFly then + return false + end + + for _name, weapondef in pairs(udef.wDefs) do + if (weapondef.damages[vtoldamagetag] > weapondef.damages[defaultdamagetag]) then + return true + end + end + return false + end) + elseif tokenLower == "weaponrange" then + local minRange = tonumber(getNextToken()) + if minRange == nil then + break + end + + filters.weaponRange = handleCaching(invert, tokenLower, function(udef, minRange) + if udef.wDefs == nil then + return false + end + + for _name, weapondef in pairs(udef.wDefs) do + if weapondef.range > minRange then + return true + end + end + return false + end, minRange) + + -- string comparison + elseif tokenLower == "category" then + local category = getNextToken() + if not category then + break + end + + category = string.lower(category) + + filters.category = handleCaching(invert, tokenLower, function(udef, category) + return udef.modCategories[category] + end, category) + elseif tokenLower == "idmatches" then + local name = getNextToken() + if not name then + break + end + + local udefid = UnitDefNames[name]; + + if udefid then + idMatchesSet[udefid] = true + + -- requires special invert logic + -- treats `invert = false` as priority + -- we don't want to handle pointless edge cases like IdMatches_armcom_Not_IdMatches_armcom + -- on the other hand IdMatches_armcom_Not_IdMatches_armflea is basically the same as IdMatches_armcom + local skip = false + if invertIdMatches == nil or invertIdMatches == invert then + invertIdMatches = invert + elseif invertIdMatches == true then + idMatchesSet = {} + invertIdMatches = false + elseif invertIdMatches == false then + skip = true + end + + if not skip then + filters.idMatches = invertCurry(invertIdMatches, function(_, udefid, _, idMatchesSet) + return idMatchesSet[udefid] or false + end, idMatchesSet) + end + end + elseif tokenLower == "namecontain" then + local name = getNextToken() + if not name then + break + end + + filters.name = handleCaching(invert, tokenLower, function(udef, name) + return stringContains(udef.name, name) + end, name) + else + logError(token .. " is not a valid filter") + end + end + + return filters +end + +--- Parses the filter definition and returns a function that determines if a unit passes the +--- filter. +--- +--- The parsing will only occure the first time this function is called, after that it is stored in +--- a lookup table. +--- @param filterDef string The filter definition string. +--- @return function the function to call to execute the filter +function SelectApi.getFilter(filterDef) + local filters = customFilterLookup[filterDef] + + if filters == nil then + filters = parseFilter(filterDef) + customFilterLookup[filterDef] = filters + end + + return filters +end + +--- Applies the filter function to the unit represented by the unit ID to determine if the unit +--- passes the filter. +--- +--- @param uid integer The unit ID +--- @param filterFunctions table List of filter functions +--- @return boolean? passes Whether the unit passes the filter, nil if the unit doesn't exist +function SelectApi.unitPassesFilter(uid, filterFunctions) + local udefid = spGetUnitDefID(uid) + + if not udefid then + return nil + end + + local udef = UnitDefs[udefid] + + for _filterName, filterFunction in pairs(filterFunctions) do + if not filterFunction(udef, udefid, uid) then + return false + end + end + + return true +end + +-- command +local function startsWith(str, prefix) + return str:match("^" .. prefix) ~= nil +end + +local function getAlreadySelectedSet() + local alreadySelectedUnits = spGetSelectedUnits() + local alreadySelectedSet = {} + + for _, unit in ipairs(alreadySelectedUnits) do + alreadySelectedSet[unit] = true + end + + return alreadySelectedSet +end + +local function getMouseWorldPos() + local mouseX, mouseY = spGetMouseState() + local desc, args = spTraceScreenRay(mouseX, mouseY, true) + + if nil == desc then return end -- off map + if nil == args then return end + + local x = args[1] + local y = args[2] + local z = args[3] + + return x, y, z +end + +local countUnitsIndex = 1 +local function getCountUnits(uids, countUntil, appendSelected) + if #uids == 0 then + return {} + end + + local alreadySelectedSet = {} + + if appendSelected then + alreadySelectedSet = getAlreadySelectedSet() + end + + -- add countUntil units that aren't in alreadySelectedSet + local selectedCount = 0 + local units = {} + + if countUnitsIndex > #uids then + countUnitsIndex = 1 + end + + local countUnitsIndexStart = countUnitsIndex + while true do + local uid = uids[countUnitsIndex] + + if not alreadySelectedSet[uid] then + selectedCount = selectedCount + 1 + table.insert(units, uid) + end + + -- circular array index + countUnitsIndex = countUnitsIndex + 1 + + if countUnitsIndex > #uids then + countUnitsIndex = 1 + end + + -- break after full cycle or countUntil reached + if countUnitsIndex == countUnitsIndexStart or selectedCount >= countUntil then + break; + end + end + + return units +end + +local function parseNumber(input, fn) + if input == nil then + logError("Invalid input, unexpected nil") + return function(args) + return fn(0, args) + end + end + + local numStr = input:match("_([^_]+)") + local distance = tonumber(numStr) + + if distance == nil then + logError("Invalid input, expected a number after the underscore: " .. input) + end + + return function(args) + return fn(distance or 0, args) + end +end + + +local function parseConclusion(conclusionDef) + local appendSelected = true + local prefix = conclusionDef:sub(1, 15) + local prefixLower = string.lower(prefix) + + if prefixLower == "clearselection_" then + appendSelected = false + conclusionDef = conclusionDef:sub(16) + end + + local conclusionDefLower = string.lower(conclusionDef) + + if conclusionDefLower == "selectall" then + return function(uids) + Spring.SelectUnitArray(uids, appendSelected) + end + elseif conclusionDefLower == "selectone" then + return function(uids) + if #uids == 0 then + Spring.SelectUnitArray({}, appendSelected) + return + end + + uids = getCountUnits(uids, 1, appendSelected) + local uid = uids[1] + + if not uid then + Spring.SelectUnitArray({}, appendSelected) + return + end + + -- center on unit + local ux, uy, uz = spGetUnitPosition(uid) + Spring.SetCameraTarget(ux, uy, uz, 1) + Spring.SelectUnitArray(uids, appendSelected) + end + elseif conclusionDefLower == "selectclosesttocursor" then + return function(uids) + if not uids or #uids == 0 then + Spring.SelectUnitArray({}, appendSelected) + return + end + + local x, y, z = getMouseWorldPos() + if x == nil or y == nil or z == nil then + Spring.SelectUnitArray({}, appendSelected) + return + end + + local closest_uid = nil + local closest_distance = nil + + for _, uid in pairs(uids) do + local ux, uy, uz = spGetUnitPosition(uid) + local dx = x - ux + local dy = y - uy + local dz = z - uz + + local distance = dx * dx + dy * dy + dz * dz + + if closest_distance == nil or distance < closest_distance then + closest_uid = uid + closest_distance = distance + end + end + + local oneUid = { closest_uid } + Spring.SelectUnitArray(oneUid, appendSelected) + end + elseif startsWith(conclusionDefLower, "selectnum_") or startsWith(conclusionDefLower, "selectnumber_") then + return parseNumber(conclusionDef, function(countUntil, uids) + uids = getCountUnits(uids, countUntil, appendSelected) + Spring.SelectUnitArray(uids, appendSelected) + end) + elseif startsWith(conclusionDefLower, "selectpart_") then + return parseNumber(conclusionDef, function(percent, uids) + local countUntil = math.floor(#uids * percent / 100) + uids = getCountUnits(uids, countUntil, appendSelected) + Spring.SelectUnitArray(uids, appendSelected) + end) + else + logError(conclusionDef .. " is not a valid conclusion") + end +end + +local function parseSource(sourceDef) + local sourceDefLower = string.lower(sourceDef) + + if sourceDefLower == "allmap" then + return function() + local myTeamId = Spring.GetMyTeamID() + return Spring.GetTeamUnits(myTeamId) + end + elseif sourceDefLower == "visible" then + return function() + local myTeamId = Spring.GetMyTeamID() + return Spring.GetVisibleUnits(myTeamId) + end + elseif sourceDefLower == "prevselection" or sourceDefLower == "previousselection" then + return function() + return spGetSelectedUnits() + end + elseif startsWith(sourceDefLower, "frommouse_") then + return parseNumber(sourceDef, function(distance) + local x, y, z = getMouseWorldPos() + if x and y and z then + return Spring.GetUnitsInSphere(x, y, z, distance) + else + return {} + end + end) + elseif startsWith(sourceDefLower, "frommousec_") or startsWith(sourceDefLower, "frommousecylinder_") then + return parseNumber(sourceDef, function(distance) + local x, y, z = getMouseWorldPos() + if x and z then + return Spring.GetUnitsInCylinder(x, z, distance) + else + return {} + end + end) + else + logError(sourceDef .. " is not a valid source") + end +end + +local function commandFormatError(commandDef) + logError("Select command string does not match the expected format: " .. commandDef) +end + +local function parseCommand(commandDef) + local sourceDef, filterDef, conclusionDef = commandDef:match("(.-)%+_(.-)%+_(.-)%+$") + + if not sourceDef or not filterDef or not conclusionDef then + commandFormatError(commandDef) + return + end + + local source = parseSource(sourceDef) + local filter = SelectApi.getFilter(filterDef) + local conclusion = parseConclusion(conclusionDef) + + return function() + local uids = source() + + local tmp = {} + for _, uid in pairs(uids) do + if SelectApi.unitPassesFilter(uid, filter) then + tmp[#tmp + 1] = uid + end + end + + conclusion(tmp) + end +end + +--- Parses the command definition and returns a function that will execute the command. +--- +--- The parsing will only occur the first time this function is called, after that it is stored in +--- a lookup table. +--- @param commandDef string The command definition string. +--- @return function the function to call to execute the command +function SelectApi.getCommand(commandDef) + local command = customCommandLookup[commandDef] + + if command == nil then + command = parseCommand(commandDef) + customCommandLookup[commandDef] = command + end + + return command +end + +return SelectApi diff --git a/luaui/Widgets/Shaders/deferred_lights_gl4.frag.glsl b/luaui/Widgets/Shaders/deferred_lights_gl4.frag.glsl index fe09061e6c6..4ee64809797 100644 --- a/luaui/Widgets/Shaders/deferred_lights_gl4.frag.glsl +++ b/luaui/Widgets/Shaders/deferred_lights_gl4.frag.glsl @@ -31,14 +31,12 @@ uniform sampler2D modelExtra; uniform sampler2D mapDiffuse; uniform sampler2D modelDiffuse; uniform sampler3D noise3DCube; -uniform sampler2D blueNoise; uniform float pointbeamcone = 0; uniform float nightFactor = 1.0; // = 0; // 0 = point, 1 = beam, 2 = cone uniform float radiusMultiplier = 1.0; uniform float intensityMultiplier = 1.0; -uniform int screenSpaceShadows = 0; out vec4 fragColor; @@ -540,6 +538,7 @@ float FastApproximateScattering(vec3 campos, vec3 viewdirection, vec3 lightposit } + // UNTESTED vec3 ScreenToWorld(vec2 screen_uv, float depth){ // returns world XYZ from v_screenUV and depth vec4 fragToScreen = vec4( vec3(screen_uv * 2.0 - 1.0, depth), 1.0); @@ -556,81 +555,6 @@ vec3 WorldToScreen(vec3 worldCoords){ // returns screen UV and depth position // Additional notes and reading: //https://andrew-pham.blog/2019/10/03/volumetric-lighting/ ??? -#ifdef SCREENSPACESHADOWS - // See Shader Amortization using Pixel Quad Message Passing - vec2 quadVector = vec2(0); // REQUIRED, contains the [-1,1] mappings - // one-hot encoding of thread ID - vec4 threadMask = vec4(0); // contains the thread ID in one-hot - #define selfWeightFactor 0.07 - vec4 selfWeights = vec4(0.25) + vec4(selfWeightFactor, selfWeightFactor/ -3.0, selfWeightFactor/ -3.0, selfWeightFactor/-3.0); - - vec4 quadGetThreadMask(vec2 qv){ - vec4 threadMask = step(vec4(qv.xy,0,0),vec4( 0,0,qv.xy)); - return threadMask.xzxz * threadMask.yyww; - } - - vec4 get_quad_vector_naive(vec4 output_pixel_num_wrt_uvxy) - { - // Requires: Two measures of the current fragment's output pixel number - // in the range ([0, IN.output_size.x), [0, IN.output_size.y)): - // 1.) output_pixel_num_wrt_uvxy.xy increase with uv coords. - // 2.) output_pixel_num_wrt_uvxy.zw increase with screen xy. - // Returns: Two measures of the fragment's position in its 2x2 quad: - // 1.) The .xy components are its 2x2 placement with respect to - // uv direction (the origin (0, 0) is at the top-left): - // top-left = (-1.0, -1.0) top-right = ( 1.0, -1.0) - // bottom-left = (-1.0, 1.0) bottom-right = ( 1.0, 1.0) - // You need this to arrange/weight shared texture samples. - // 2.) The .zw components are its 2x2 placement with respect to - // screen xy direction (IN.position); the origin varies. - // quad_gather needs this measure to work correctly. - // Note: quad_vector.zw = quad_vector.xy * float2( - // ddx(output_pixel_num_wrt_uvxy.x), - // ddy(output_pixel_num_wrt_uvxy.y)); - // Caveats: This function assumes the GPU driver always starts 2x2 pixel - // quads at even pixel numbers. This assumption can be wrong - // for odd output resolutions (nondeterministically so). - vec4 pixel_odd = fract(output_pixel_num_wrt_uvxy * 0.5) * 2.0; - vec4 quad_vector = pixel_odd * 2.0 - vec4(1.0); - return quad_vector; - } - - vec4 get_quad_vector(vec4 output_pixel_num_wrt_uvxy) - { - // Requires: Same as get_quad_vector_naive() (see that first). - // Returns: Same as get_quad_vector_naive() (see that first), but it's - // correct even if the 2x2 pixel quad starts at an odd pixel, - // which can occur at odd resolutions. - vec4 quad_vector_guess = - get_quad_vector_naive(output_pixel_num_wrt_uvxy); - // If quad_vector_guess.zw doesn't increase with screen xy, we know - // the 2x2 pixel quad starts at an odd pixel: - vec2 odd_start_mirror = 0.5 * vec2(dFdx(quad_vector_guess.z), - dFdy(quad_vector_guess.w)); - return quad_vector_guess * odd_start_mirror.xyxy; - } - - // [-1,1] quad vector as per get_quad_vector_naive - vec2 quadGetQuadVector(vec2 screenCoords){ - vec2 quadVector = fract(floor(screenCoords) * 0.5) * 4.0 - 1.0; - vec2 odd_start_mirror = 0.5 * vec2(dFdx(quadVector.x), dFdy(quadVector.y)); - quadVector = quadVector * odd_start_mirror; - return sign(quadVector); - } - - vec4 quadGather(float input){ - float inputadjx = input - dFdx(input) * quadVector.x; - float inputadjy = input - dFdy(input) * quadVector.y; - float inputdiag = inputadjx - dFdy(inputadjx) * quadVector.y; - return vec4(input, inputadjx, inputadjy, inputdiag); - } - - float rand(vec2 co){ - return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); - } - -#endif - #line 31000 void main(void) { @@ -711,14 +635,7 @@ void main(void) lightToWorld = fragWorldPos.xyz - lightPosition; lightDirection = normalize(lightToWorld); - attenuation = clamp( 1.0 - length (lightToWorld) * lightRadiusInv, 0,1); - - // example of exponential attenuation instead of clamped, - //Use a smoother distance-falloff formula such as an exponential or inverse-square: - //float dist = length(lightToWorld); - //attenuation = exp(-dist * 0.5); - closestpoint_dist = closestlightlp_distance(camPos, viewDirection, lightPosition); // Both scattering components @@ -874,89 +791,9 @@ void main(void) specular = dot(reflection, viewDirection); specular = v_modelfactor_specular_scattering_lensflare.y * pow(max(0.0, specular), 8.0 * ( 1.0 + ismodel * v_modelfactor_specular_scattering_lensflare.x) ) * (1.0 + ismodel * v_modelfactor_specular_scattering_lensflare.x); attenuation = pow(attenuation, 1.0); - - // Do screen-space sampling for shadowing because you are a silly boy: - float unoccluded = 1.0; - #ifdef SCREENSPACESHADOWS - // But only for point and cone lights: - // also assume that only models will shadow - if ((v_otherparams.w) > 0.01 && (screenSpaceShadows > 0)) { - const int sampleCount = screenSpaceShadows; - // Initialize the quad vectors, so we can do Pixel Quad Message Passing - quadVector = get_quad_vector(vec4(v_screenUV.xy, floor(gl_FragCoord.xy))).zw; - threadMask = quadGetThreadMask(quadVector); - - // Split up a step evenly between the 4 threads in the quad - vec4 threadOffset = vec4(0.125, 0.375, 0.625, 0.875); - //vec4 threadOffset = vec4(0.5); - - // Generate a small, random offset to jiggle the samples a little bit, this provides a bit of noise to the shadowing - //float randomOffset = rand(gl_FragCoord.xy * 0.013971639) * (- 0.25); - float blueNoiseSample = textureLod(blueNoise, gl_FragCoord.xy / 64.0, 0.0).r; - float randomOffset = blueNoiseSample * (-0.25); - // Collect occludedness in this variable - float occludedness = 0.0; - - // Set up the raytracing variables - vec3 rayStart = lightEmitPosition.xyz; - vec3 rayEnd = fragWorldPos.xyz; - vec3 rayStep = (rayEnd - rayStart) / (sampleCount); - float rayStepLength = length(rayStep); - float distanceToLight = 0; // squared distance to the light - - for (int i = 0; i < sampleCount; i++){ - float stepSize = (float(i) + dot(threadMask, threadOffset) + randomOffset); - distanceToLight = stepSize * rayStepLength; - - // Calculate the current ray position in both world and screenspace - vec3 rayWorldPos = rayStart + rayStep * stepSize; - vec3 rayScreenPos = WorldToScreen(rayWorldPos); - // Convert the NDC to UV space, and clamping is not needed because enabling it brings bad artifacts - rayScreenPos.xy = rayScreenPos.xy * 0.5 + 0.5; - - float rayScreenDepthSample = texture(modelDepths, rayScreenPos.xy ).x; - - // Assume that any sample outside of the edges of the screen will not occlude - if (any(lessThan(rayScreenPos.xy, vec2(0.001))) || any(greaterThan(rayScreenPos.xy, vec2(1.0-0.001)))) rayScreenDepthSample = 1.0; - - // Since modeldepth is zero where there is no model, we need to convert this to 1.0 - if (rayScreenDepthSample < 0.01) rayScreenDepthSample = 1.0; - - // we need to soften this, based on the squared world-space distance between the ray point and the sampled depth: - - // Recover the world position of the sample from the depth buffer, and calculate the distance to the ray - vec3 sampleWorldPos = ScreenToWorld(rayScreenPos.xy, rayScreenDepthSample); - float sampleDistance = length(rayWorldPos - sampleWorldPos); - float sampleOcclusionStrength = 0.0; - - // Assume that a ray that hits exactly occludes 0.5 - if (rayScreenDepthSample < rayScreenPos.z) { - // If the sample actually occludes, then softly occlude it based on the distance from the light - sampleOcclusionStrength = 0.5 + clamp(sampleDistance / (rayStepLength * 0.05), 0.0, 1.0) * 0.5;; - }else{ - // if the sample does not occlude, but is close to doing so, then softly occlude it based on the distance from the light - sampleOcclusionStrength = 0.5 - clamp(sampleDistance / (rayStepLength * 0.2), 0.0, 1.0) * 0.5;; - } - - occludedness += sampleOcclusionStrength; - - } - //printf(occludedness); - - float prob = 0.56; - - //vec4 weights = vec4(prob*prob, prob*(1.0-prob), (1.0-prob)*prob, (1.0-prob)*(1.0-prob)); - vec4 weights = vec4(prob, 1.0 - prob, 1.0 - prob, prob) * 0.5; - vec4 gatheredunoccluded = quadGather(occludedness); - float dotproduct = dot(gatheredunoccluded, vec4(4* weights)); // This will multiply by 4, effectively - //dotproduct = occludedness; - unoccluded = 1.0 - smoothstep(0.0, 0.25 * v_otherparams.w * float(screenSpaceShadows) , dotproduct); - - //printf(unoccluded); - } - - - #endif + + + fragColor.rgb = vec3( (diffuse) * attenuation + lensFlare, //relativedistancetolight * relativedistancetolight * selfglowfalloff * sourceVisible + @@ -981,7 +818,7 @@ void main(void) vec3 additivelights = ((scatteringRayleigh + scatteringMie) * v_modelfactor_specular_scattering_lensflare.z + lensFlare) * v_lightcolor.rgb * v_lightcolor.w * 0.4 ; // Sum up diffuse+specular and colorize the light - vec3 blendedlights = (v_lightcolor.rgb * v_lightcolor.w) * (diffuse + specular) * unoccluded; + vec3 blendedlights = (v_lightcolor.rgb * v_lightcolor.w) * (diffuse + specular); // Modulate color with target color of the surface. blendedlights = mix(blendedlights, blendedlights * targetcolor.rgb * 2.0, SURFACECOLORMODULATION); diff --git a/luaui/Widgets/Shaders/deferred_lights_gl4.vert.glsl b/luaui/Widgets/Shaders/deferred_lights_gl4.vert.glsl index d82628c3df0..813cd70a3a5 100644 --- a/luaui/Widgets/Shaders/deferred_lights_gl4.vert.glsl +++ b/luaui/Widgets/Shaders/deferred_lights_gl4.vert.glsl @@ -3,450 +3,320 @@ #extension GL_ARB_shader_storage_buffer_object : require #extension GL_ARB_shading_language_420pack: require - // This shader is (c) Beherith (mysterme@gmail.com) #line 5000 - layout (location = 0) in vec4 position; // xyz and etc garbage //layout locations 1 and 2 contain primitive specific garbage and should not be used - layout (location = 3) in vec4 worldposrad; // Centerpos layout (location = 4) in vec4 worldposrad2; // velocity for points, beam end for beams, dir and theta for cones -layout (location = 5) in vec4 lightcolor; -layout (location = 6) in vec4 modelfactor_specular_scattering_lensflare; // -layout (location = 7) in vec4 otherparams; // spawnframe, lifetime, sustain, selfshadowing -layout (location = 8) in vec4 color2; // +layout (location = 5) in vec4 lightcolor; +layout (location = 6) in vec4 modelfactor_specular_scattering_lensflare; // +layout (location = 7) in vec4 otherparams; // spawnframe, lifetime, sustain, animtype +layout (location = 8) in vec4 color2; // layout (location = 9) in uint pieceIndex; // for piece type lights layout (location = 10) in uvec4 instData; // matoffset, uniformoffset, teamIndex, drawFlags {id = 5, name = 'instData', size = 4, type = GL.UNSIGNED_INT}, - - + //__ENGINEUNIFORMBUFFERDEFS__ //__DEFINES__ - layout(std140, binding = 0) readonly buffer MatrixBuffer { - mat4 mat[]; + mat4 mat[]; }; - struct SUniformsBuffer { - uint composite; // u8 drawFlag; u8 unused1; u16 id; - + uint composite; // u8 drawFlag; u8 unused1; u16 id; - uint unused2; - uint unused3; - uint unused4; - - - float maxHealth; - float health; - float unused5; - float unused6; + uint unused2; + uint unused3; + uint unused4; + float maxHealth; + float health; + float unused5; + float unused6; vec4 drawPos; vec4 speed; vec4[4] userDefined; //can't use float[16] because float in arrays occupies 4 * float space }; - layout(std140, binding=1) readonly buffer UniformsBuffer { - SUniformsBuffer uni[]; + SUniformsBuffer uni[]; }; -#define UNITID (uni[instData.y].composite >> 16) #line 10000 - uniform float pointbeamcone = 0;// = 0; // 0 = point, 1 = beam, 2 = cone - - // this uniform needs some extra. If it is 1, then the primitives should point in the -Z direction, and be moved and rotated with the unit itself // If the unit is not being drawn, it must be switched off -// One should still be able to specify an offset for this. -// our overdraw additional offsets become a problem possibly for this - +// One should still be able to specify an offset for this. +// our overdraw additional offsets become a problem possibly for this uniform float attachedtounitID = 0; - uniform float windX = 0; uniform float windZ = 0; - uniform float radiusMultiplier = 1.0; uniform float intensityMultiplier = 1.0; - out DataVS { - flat vec4 v_worldPosRad; - flat vec4 v_worldPosRad2; - flat vec4 v_lightcolor; - flat vec4 v_modelfactor_specular_scattering_lensflare; - vec4 v_depths_center_map_model_min; - vec4 v_otherparams; - vec4 v_lightcenter_gradient_height; - vec4 v_position; - vec4 v_noiseoffset; - noperspective vec2 v_screenUV; + flat vec4 v_worldPosRad; + flat vec4 v_worldPosRad2; + flat vec4 v_lightcolor; + flat vec4 v_modelfactor_specular_scattering_lensflare; + vec4 v_depths_center_map_model_min; + vec4 v_otherparams; + vec4 v_lightcenter_gradient_height; + vec4 v_position; + vec4 v_noiseoffset; + noperspective vec2 v_screenUV; }; - uniform sampler2D mapDepths; uniform sampler2D modelDepths; uniform sampler2D heightmapTex; uniform sampler2D mapnormalsTex; - #define SNORM2NORM(value) (value * 0.5 + 0.5) - - - -float rand(vec2 co){ // a pretty crappy random function - return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); -} - - -vec4 depthAtWorldPos(vec4 worldPosition){ - // takes a point, transforms it to worldspace, and checks for occlusion against map, model buffer, and returns all the depths - // x: light pos depth, y: map depth, z: model depth, w: min(map, model) - vec4 screenPosition = cameraViewProj * worldPosition; - screenPosition.xyz = screenPosition.xyz / screenPosition.w; - // Transform from [-1,1] screen space into [0, 1] UV space - vec2 screenUV = clamp(SNORM2NORM(screenPosition.xy), 0.001, 0.999); - vec4 depths; - - depths.x = screenPosition.z ; - float mapdepth = texture(mapDepths, screenUV).x; - float modeldepth = texture(modelDepths, screenUV).x; - depths.y = mapdepth; - depths.z = modeldepth; - depths.w = min(mapdepth, modeldepth); - return depths; +vec4 depthAtWorldPos(vec4 worldPosition){ + // takes a point, transforms it to worldspace, and checks for occlusion against map, model buffer, and returns all the depths + // x: light pos depth, y: map depth, z: model depth, w: min(map, model) + vec4 screenPosition = cameraViewProj * worldPosition; + screenPosition.xyz = screenPosition.xyz / screenPosition.w; + // Transform from [-1,1] screen space into [0, 1] UV space + vec2 screenUV = clamp(SNORM2NORM(screenPosition.xy), 0.001, 0.999); + vec4 depths; + + depths.x = screenPosition.z ; + float mapdepth = texture(mapDepths, screenUV).x; + float modeldepth = texture(modelDepths, screenUV).x; + depths.y = mapdepth; + depths.z = modeldepth; + depths.w = min(mapdepth, modeldepth); + return depths; } - void main() { - float time = timeInfo.x + timeInfo.w; - - float lightRadius = worldposrad.w * radiusMultiplier; - v_worldPosRad = worldposrad ; - v_worldPosRad.w = lightRadius; - - vec4 v_color2 = color2; - - mat4 placeInWorldMatrix = mat4(1.0); // this is unity for non-unitID tied stuff - - // Ok so here comes the fun part, where we if we have a unitID then fun things happen - // v_worldposrad contains the incoming piece-level offset - // v_worldPosRad should be after changing to unit-space - // we have to transform BOTH the center of the light to piece-space - // and the vertices of the light volume to piece-space - // we need to go from light-space to world-space - vec3 lightCenterPosition = v_worldPosRad.xyz; - v_lightcolor = lightcolor; - float selfIllumMod = 1.0; - - if (attachedtounitID > 0){ - mat4 worldMatrix = mat[instData.x]; - placeInWorldMatrix = worldMatrix; - if (pieceIndex > 0u) { - mat4 pieceMatrix = mat[instData.x + pieceIndex]; - placeInWorldMatrix = placeInWorldMatrix * pieceMatrix; - } - //uint drawFlags = (instData.z & 0x0000100u);// >> 8 ; // hopefully this works - //if (drawFlags == 0u) placeInWorldMatrix = mat4(0.0); // disable if drawflag is set to 0 - // disable if drawflag is set to 0, note that we are exploiting the fact that these should be drawn even if unit is transparent, or if unit only has its shadows drawn. - // This is good because the tolerance for distant shadows is much greater - if ((uni[instData.y].composite & 0x00001fu) == 0u ) placeInWorldMatrix = mat4(0.0); - - - uint teamIndex = (instData.z & 0x000000FFu); //leftmost ubyte is teamIndex - vec4 teamCol = teamColor[teamIndex]; - if (any(lessThan(lightcolor.rgb, vec3(-0.01)))) - v_lightcolor.rgb = teamCol.rgb; - - // WARNING: TEAMCOLOR AS COLOR2 REQUIRES AT LEAST -100 - if (any(lessThan(v_color2.rgb, vec3(-99.00)))) - v_color2.rgb = teamCol.rgb; - - - selfIllumMod = max(-0.2, sin(time * 2.0/30.0 + float(UNITID) * 0.1)) + 0.2; - } - // Note that elapsedframes contains the timeOffset as well - float elapsedframes = time - otherparams.x; - float lifetime = otherparams.y; - float sustain = otherparams.z; - if (lifetime > 0 ){ //lifetime alpha control - if (sustain >1 ){ // sustain is positive, keep it up for sustain frames, then ramp it down - v_lightcolor.a = clamp( v_lightcolor.a * ( lifetime - elapsedframes)/(lifetime - sustain ) , 0.0, v_lightcolor.a); - - }else{ // sustain is <1, use exp falloff - v_lightcolor.a = clamp( v_lightcolor.a * exp( -sustain * (elapsedframes) * 100 ) , 0.0, v_lightcolor.a); - - } - } - - v_worldPosRad2 = worldposrad2; - - - v_modelfactor_specular_scattering_lensflare = modelfactor_specular_scattering_lensflare; - v_depths_center_map_model_min = vec4(1.0); // just a sanity init - v_otherparams = otherparams; - - vec4 worldPos = vec4(1.0); - #line 11000 - if (pointbeamcone < 0.5){ // point - //scale it and place it into the world - //Make it a tiny bit bigger *(1.1) cause the blocky sphere is smaller than the actual radius - // the -1 is for inverting it so we always see the back faces (great for occlusion testing!) (this should be exploited later on! - - // this is centered around the target positional offset, and scaled locally - vec3 lightVertexPosition = lightCenterPosition + -1 * position.xyz * lightRadius * 1.1; - - // Add animations - if (worldposrad2.w == 0.0) { // Why was this 1.0 and not 0.0? - // This allows deferred projectile lights to 'track' with frameOffset fractional times. - lightCenterPosition += timeInfo.w * worldposrad2.xyz; - lightVertexPosition += timeInfo.w * worldposrad2.xyz; - } else { - vec3 lightWorldMovement = vec3(0.0); - - - // Negative thetas mean orbit, positive means linear movement - if (worldposrad2.w < 0.0){ - // Note: worldposrad2.w is an excellent place to add orbit-style world-placement light animations - float xphaseoffset = 0.0; // half pi 1.570796326 - if (worldposrad2.x == 0.0) xphaseoffset = 0.0; // dont offset Z phase no motion is expected on it - lightWorldMovement = sin(elapsedframes * 0.2094395 * worldposrad2.xyz + vec3(xphaseoffset, 0.0, 0.0 )) * (-1 * worldposrad2.w); - + float time = timeInfo.x + timeInfo.w; + + float lightRadius = worldposrad.w * radiusMultiplier; + v_worldPosRad = worldposrad ; + v_worldPosRad.w = lightRadius; + + + mat4 placeInWorldMatrix = mat4(1.0); // this is unity for non-unitID tied stuff + + // Ok so here comes the fun part, where we if we have a unitID then fun things happen + // v_worldposrad contains the incoming piece-level offset + // v_worldPosRad should be after changing to unit-space + // we have to transform BOTH the center of the light to piece-space + // and the vertices of the light volume to piece-space + // we need to go from light-space to world-space + vec3 lightCenterPosition = v_worldPosRad.xyz; + v_lightcolor = lightcolor; + if (attachedtounitID > 0){ + mat4 worldMatrix = mat[instData.x]; + placeInWorldMatrix = worldMatrix; + if (pieceIndex > 0u) { + mat4 pieceMatrix = mat[instData.x + pieceIndex]; + placeInWorldMatrix = placeInWorldMatrix * pieceMatrix; + } + //uint drawFlags = (instData.z & 0x0000100u);// >> 8 ; // hopefully this works + //if (drawFlags == 0u) placeInWorldMatrix = mat4(0.0); // disable if drawflag is set to 0 + // disable if drawflag is set to 0, note that we are exploiting the fact that these should be drawn even if unit is transparent, or if unit only has its shadows drawn. + // This is good because the tolerance for distant shadows is much greater + if ((uni[instData.y].composite & 0x00001fu) == 0u ) placeInWorldMatrix = mat4(0.0); + + uint teamIndex = (instData.z & 0x000000FFu); //leftmost ubyte is teamIndex + vec4 teamCol = teamColor[teamIndex]; + if (any(lessThan(lightcolor.rgb, vec3(-0.01)))) v_lightcolor.rgb = teamCol.rgb; + } + float elapsedframes = time - otherparams.x; + float lifetime = otherparams.y; + float sustain = otherparams.z; + if (lifetime > 0 ){ //lifetime alpha control + if (sustain >1 ){ // sustain is positive, keep it up for sustain frames, then ramp it down + v_lightcolor.a = clamp( v_lightcolor.a * ( lifetime - elapsedframes)/(lifetime - sustain ) , 0.0, v_lightcolor.a); + + }else{ // sustain is <1, use exp falloff + v_lightcolor.a = clamp( v_lightcolor.a * exp( -sustain * (elapsedframes) * 100 ) , 0.0, v_lightcolor.a); + + } + } + + v_worldPosRad2 = worldposrad2; + + v_modelfactor_specular_scattering_lensflare = modelfactor_specular_scattering_lensflare; + v_depths_center_map_model_min = vec4(1.0); // just a sanity init + v_otherparams = otherparams; + + vec4 worldPos = vec4(1.0); + #line 11000 + if (pointbeamcone < 0.5){ // point + //scale it and place it into the world + //Make it a tiny bit bigger *(1.1) cause the blocky sphere is smaller than the actual radius + // the -1 is for inverting it so we always see the back faces (great for occlusion testing!) (this should be exploited later on! + + // this is centered around the target positional offset, and scaled locally + vec3 lightVertexPosition = lightCenterPosition + -1 * position.xyz * lightRadius * 1.1; + + // tranform the vertices to world-space + lightVertexPosition = (placeInWorldMatrix * vec4(lightVertexPosition, 1.0)).xyz; + + // tranform the center to world-space + lightCenterPosition = (placeInWorldMatrix * vec4(lightCenterPosition, 1.0)).xyz; + + + float colortime = color2.a; // Matches colortime in lightConf for point lights + if (attachedtounitID > 0.5) { + // for point lights, if the colortime is anything sane (>0), then modulate the light with it. + if (colortime >0.5){ + v_lightcolor.rgb = mix( color2.rgb, v_lightcolor.rgb, cos((elapsedframes * 6.2831853) / colortime ) * 0.5 + 0.5); } + + }else{ + if (colortime >0.0){ + + float colormod = 0; + if (colortime > 1.0) { + colormod = clamp(elapsedframes/colortime , 0.0, 1.0); + } + else { + colormod = cos(elapsedframes * 6.2831853 * colortime ) * 0.5 + 0.5; + } + v_lightcolor.rgb = mix(v_lightcolor.rgb, color2.rgb, colormod); + } + if (worldposrad2.w < 1.0) { + lightCenterPosition += timeInfo.w * worldposrad2.xyz; + lightVertexPosition += timeInfo.w * worldposrad2.xyz; }else{ - // for positive numbers, we can do linear movement, with acceleration in w - // its pretty nasty, but hey, it works - lightWorldMovement = worldposrad2.xyz * ( elapsedframes + elapsedframes * elapsedframes * (worldposrad2.w - 1.0) ); + // Note: worldposrad2.w is an excellent place to add orbit-style world-placement light animations + //vec3 lightWorldMovement = sin(time * 0.017453292 * worldposrad2.xyz) * worldposrad2.w; + //lightCenterPosition += lightWorldMovement; } - lightCenterPosition += lightWorldMovement; - lightVertexPosition += lightWorldMovement; - } - - // tranform the vertices to world-space - lightVertexPosition = (placeInWorldMatrix * vec4(lightVertexPosition, 1.0)).xyz; - - // tranform the center to world-space - lightCenterPosition = (placeInWorldMatrix * vec4(lightCenterPosition, 1.0)).xyz; - - - float colortime = v_color2.a; // Matches colortime in lightConf for point lights - if (attachedtounitID > 0.5) { // unit-attached point lights - // for point lights, if the colortime is anything sane (>0), then modulate the light with it. - if (colortime >0.5){ - v_lightcolor.rgb = mix( v_color2.rgb, v_lightcolor.rgb, cos((elapsedframes * 6.2831853) / colortime ) * 0.5 + 0.5); - } else if (colortime <= -1.0){ - // for point lights, if the colortime is negative, then modulate the light with it - // Increasing the colortime will make it so that the pulsing effect is lessened - selfIllumMod = mix(1.0, selfIllumMod, -1.0 / colortime); - // Pulse the light into the v_color2 via selfIllumMod - v_lightcolor.rgb = mix(v_color2.rgb, v_lightcolor.rgb, selfIllumMod); - } - - }else{ // World-space point lights - if (colortime > 0.0){ // For positive colortime - float colormod = 0; - // If colortime > 1, then the color will gradually change to v_color2 in colortime number of frames - if (colortime > 1.0) { - colormod = clamp(elapsedframes/colortime , 0.0, 1.0); - // If 0 < colortime < 1, then the color will pulsate between original color and v_color2 at a rate of cos( lifetime * 2 * pi * colortime. - } else { - colormod = cos(elapsedframes * 6.2831853 * colortime ) * 0.5 + 0.5; - } - v_lightcolor.rgb = mix(v_lightcolor.rgb, v_color2.rgb, colormod); - } - - - } - - - v_worldPosRad.xyz = lightCenterPosition; - v_depths_center_map_model_min = depthAtWorldPos(vec4(lightCenterPosition,1.0)); // - v_position = vec4( lightVertexPosition, 1.0); - } - #line 12000 - else if (pointbeamcone < 1.5){ // beam - // we will tranform along this vector, where Y shall be the upvector - // our null vector is +X - vec3 centertoend = lightCenterPosition - worldposrad2.xyz; - float halfbeamlength = length(centertoend); - // Scale the box to correct size (along beam is Y dir) - //if (attachedtounitID > 0){ - worldPos.xyz = position.xyz * vec3( lightRadius , step(position.y, 0) *halfbeamlength + lightRadius, lightRadius ); - //} - //else{ - worldPos.xyz = position.xyz * vec3( lightRadius , step(position.y, 0) * halfbeamlength + lightRadius, lightRadius ); - //worldPos.xyz = position.xyz * vec3( lightRadius , halfbeamlength + lightRadius, lightRadius ); - //worldPos.xyz += vec3(50); - //} - - // TODO rotate this box - vec3 oldfw = vec3(0,1,0); // The old forward direction is -y - vec3 newfw = normalize(centertoend); // the new forward direction shall be the normal that we want - vec3 newright = normalize(cross(newfw, oldfw)); // the new right direction shall be the vector perpendicular to old and new forward - vec3 newup = normalize(cross(newright, newfw)); // the new up direction shall be the vector perpendicular to new right and new forward - // TODO: handle the two edge cases where newfw == (oldfw or -1*oldfw) - mat3 rotmat = mat3( // assemble the rotation matrix - newup, - newfw, - newright - ); - worldPos.xyz = rotmat * worldPos.xyz; - - // so we now have our rotated box, we need to place it not at the center, but where the piece matrix tells us to - // or where the lightcenterpos tells us to - - - float colortime = v_color2.a; // Matches colortime in lightConf for point lights - // if the cone is not attached to the unit, exploit that direction allows us to smoothen anim - if (attachedtounitID < 0.5){ // World Space Light - - - if (colortime > 0.0){ // For positive colortime - float colormod = 0; - // If colortime > 1, then the color will gradually change to v_color2 in colortime number of frames - if (colortime > 1.0) { - colormod = clamp(elapsedframes/colortime , 0.0, 1.0); - // If 0 < colortime < 1, then the color will pulsate between original color and v_color2 at a rate of cos( lifetime * 2 * pi * colortime. - } else { - colormod = cos(elapsedframes * 6.2831853 * colortime ) * 0.5 + 0.5; - } - v_lightcolor.rgb = mix(v_lightcolor.rgb, v_color2.rgb, colormod); - } - }else{ // unit-attached point lights - // for point lights, if the colortime is anything sane (>0), then modulate the light with it. - if (colortime >0.5){ - v_lightcolor.rgb = mix( v_color2.rgb, v_lightcolor.rgb, cos((elapsedframes * 6.2831853) / colortime ) * 0.5 + 0.5); - } else if (colortime <= -1.0){ - // for point lights, if the colortime is negative, then modulate the light with it - // Increasing the colortime will make it so that the pulsing effect is lessened - selfIllumMod = mix(1.0, selfIllumMod, -1.0 / colortime); - // Pulse the light into the v_color2 via selfIllumMod - v_lightcolor.rgb = mix(v_color2.rgb, v_lightcolor.rgb, selfIllumMod); - } - } - - - // Place the box in the world - worldPos.xyz += lightCenterPosition; - - v_depths_center_map_model_min = depthAtWorldPos(vec4(lightCenterPosition,1.0)); - - v_worldPosRad2.xyz = (placeInWorldMatrix * vec4(v_worldPosRad2.xyz, 1.0)).xyz;; - v_worldPosRad.xyz = (placeInWorldMatrix * vec4(lightCenterPosition.xyz, 1.0)).xyz; - v_worldPosRad.xyz += (v_worldPosRad2.xyz - v_worldPosRad.xyz) * 0.5; - v_position.xyz = (placeInWorldMatrix * vec4(worldPos.xyz, 1.0)).xyz; - } - #line 12000 - else if (pointbeamcone > 1.5){ // cone - // input cone that has pointy end up, (y = 1), with radius =1, flat on Y=0 plane - // make it so that cone tip is at 0 and the opening points to -y - worldPos.xyz = position.xyz; - worldPos.x *= -1.0; // flip the cone inside out - worldPos.y = (worldPos.y*1.1 - 1.) * -1; - //worldPos.y *= 1; - - worldPos.xz *= tan(worldposrad2.w); // Scale the flat of the cone by the half-angle of its opening - worldPos.xyz *= lightRadius * 1.05; // scale it all by the height of the cone, and a bit of extra - - // Now our cone is opening forward towards -y, but we want it to point into the worldposrad2.xyz - vec3 oldfw = vec3(0, -1,0); // The old forward direction is -y - vec3 newfw = normalize(worldposrad2.xyz); // the new forward direction shall be the normal that we want - vec3 newright = normalize(cross(newfw, oldfw)); // the new right direction shall be the vector perpendicular to old and new forward - vec3 newup = normalize(cross(newright, newfw)); // the new up direction shall be the vector perpendicular to new right and new forward - // TODO: handle the two edge cases where newfw == (oldfw or -1*oldfw) - mat3 rotmat = mat3( // assemble the rotation matrix - newup, - newfw, - newright - ); - - - float colortime = v_color2.a; // Matches colortime in lightConf for point lights - // if the cone is not attached to the unit, exploit that direction allows us to smoothen anim - if (attachedtounitID < 0.5){ // World Space Light - lightCenterPosition += worldposrad2.xyz * timeInfo.w; - - - if (colortime > 0.0){ // For positive colortime - float colormod = 0; - // If colortime > 1, then the color will gradually change to v_color2 in colortime number of frames - if (colortime > 1.0) { - colormod = clamp(elapsedframes/colortime , 0.0, 1.0); - // If 0 < colortime < 1, then the color will pulsate between original color and v_color2 at a rate of cos( lifetime * 2 * pi * colortime. - } else { - colormod = cos(elapsedframes * 6.2831853 * colortime ) * 0.5 + 0.5; - } - v_lightcolor.rgb = mix(v_lightcolor.rgb, v_color2.rgb, colormod); - } - }else{ // unit-attached point lights - // for point lights, if the colortime is anything sane (>0), then modulate the light with it. - if (colortime >0.5){ - v_lightcolor.rgb = mix( v_color2.rgb, v_lightcolor.rgb, cos((elapsedframes * 6.2831853) / colortime ) * 0.5 + 0.5); - } else if (colortime <= -1.0){ - // for point lights, if the colortime is negative, then modulate the light with it - // Increasing the colortime will make it so that the pulsing effect is lessened - selfIllumMod = mix(1.0, selfIllumMod, -1.0 / colortime); - // Pulse the light into the v_color2 via selfIllumMod - v_lightcolor.rgb = mix(v_color2.rgb, v_lightcolor.rgb, selfIllumMod); - } - } - - // rotate the cone, and place it into local space - worldPos.xyz = rotmat * worldPos.xyz + lightCenterPosition; - - - - // move the cone into piece or world space: - worldPos.xyz = (placeInWorldMatrix * vec4(worldPos.xyz, 1.0)).xyz; - - // set the center pos of the light: - v_worldPosRad.xyz = (placeInWorldMatrix * vec4(lightCenterPosition.xyz, 1.0)).xyz;; - v_depths_center_map_model_min = depthAtWorldPos(vec4(v_worldPosRad.xyz,1.0)); - - v_worldPosRad2.w = cos(worldposrad2.w); // pass through the cosine to avoid this calc later on - v_worldPosRad2.xyz = normalize(worldposrad2.xyz); // normalize this here for sanity - - // Clear out the translation from the cone direction, and turn the cone according to the piece matrix - v_worldPosRad2.xyz = mat3(placeInWorldMatrix) * v_worldPosRad2.xyz; - - v_position = worldPos; - } - #line 13000 - // Get the heightmap and the normal map at the center position of the light in v_worldPosRad.xyz - - vec2 uvhm = heightmapUVatWorldPos(v_worldPosRad.xz); - v_lightcenter_gradient_height.w = textureLod(heightmapTex, uvhm, 0.0).x; - - vec4 mapnormals = textureLod(mapnormalsTex, uvhm, 0.0); - mapnormals.g = sqrt( 1.0 - mapnormals.r * mapnormals.r - mapnormals.a * mapnormals.a); - v_lightcenter_gradient_height.xyz = mapnormals.rga; - - // vec4 windInfo; // windx, windy, windz, windStrength - v_noiseoffset = vec4(windX, 0, windZ,0) * (-0.0156); - //v_noiseoffset = vec4(0.0); - //v_noiseoffset.y = windX + windZ; - - gl_Position = cameraViewProj * v_position; - v_screenUV = SNORM2NORM(gl_Position.xy / gl_Position.w); - - // pass everything on to fragment shader: - - - + } + + + v_worldPosRad.xyz = lightCenterPosition; + v_depths_center_map_model_min = depthAtWorldPos(vec4(lightCenterPosition,1.0)); // + v_position = vec4( lightVertexPosition, 1.0); + } + #line 12000 + else if (pointbeamcone < 1.5){ // beam + // we will tranform along this vector, where Y shall be the upvector + // our null vector is +X + vec3 centertoend = lightCenterPosition - worldposrad2.xyz; + float halfbeamlength = length(centertoend); + // Scale the box to correct size (along beam is Y dir) + //if (attachedtounitID > 0){ + worldPos.xyz = position.xyz * vec3( lightRadius , step(position.y, 0) *halfbeamlength + lightRadius, lightRadius ); + //} + //else{ + worldPos.xyz = position.xyz * vec3( lightRadius , step(position.y, 0) * halfbeamlength + lightRadius, lightRadius ); + //worldPos.xyz = position.xyz * vec3( lightRadius , halfbeamlength + lightRadius, lightRadius ); + //worldPos.xyz += vec3(50); + //} + + // TODO rotate this box + vec3 oldfw = vec3(0,1,0); // The old forward direction is -y + vec3 newfw = normalize(centertoend); // the new forward direction shall be the normal that we want + vec3 newright = normalize(cross(newfw, oldfw)); // the new right direction shall be the vector perpendicular to old and new forward + vec3 newup = normalize(cross(newright, newfw)); // the new up direction shall be the vector perpendicular to new right and new forward + // TODO: handle the two edge cases where newfw == (oldfw or -1*oldfw) + mat3 rotmat = mat3( // assemble the rotation matrix + newup, + newfw, + newright + ); + worldPos.xyz = rotmat * worldPos.xyz; + + // so we now have our rotated box, we need to place it not at the center, but where the piece matrix tells us to + // or where the lightcenterpos tells us to + + + // Place the box in the world + worldPos.xyz += lightCenterPosition; + + v_depths_center_map_model_min = depthAtWorldPos(vec4(lightCenterPosition,1.0)); + + v_worldPosRad2.xyz = (placeInWorldMatrix * vec4(v_worldPosRad2.xyz, 1.0)).xyz;; + v_worldPosRad.xyz = (placeInWorldMatrix * vec4(lightCenterPosition.xyz, 1.0)).xyz; + v_worldPosRad.xyz += (v_worldPosRad2.xyz - v_worldPosRad.xyz) * 0.5; + v_position.xyz = (placeInWorldMatrix * vec4(worldPos.xyz, 1.0)).xyz; + } + #line 12000 + else if (pointbeamcone > 1.5){ // cone + // input cone that has pointy end up, (y = 1), with radius =1, flat on Y=0 plane + // make it so that cone tip is at 0 and the opening points to -y + worldPos.xyz = position.xyz; + worldPos.x *= -1.0; // flip the cone inside out + worldPos.y = (worldPos.y*1.1 - 1.) * -1; + //worldPos.y *= 1; + + worldPos.xz *= tan(worldposrad2.w); // Scale the flat of the cone by the half-angle of its opening + v_worldPosRad2.w = cos(worldposrad2.w); // pass through the cosine to avoid this calc later on + v_worldPosRad2.xyz = normalize(worldposrad2.xyz); // normalize this here for sanity + worldPos.xyz *= lightRadius * 1.05; // scale it all by the height of the cone, and a bit of extra + + // Now our cone is opening forward towards -y, but we want it to point into the worldposrad2.xyz + vec3 oldfw = vec3(0, -1,0); // The old forward direction is -y + vec3 newfw = normalize(worldposrad2.xyz); // the new forward direction shall be the normal that we want + vec3 newright = normalize(cross(newfw, oldfw)); // the new right direction shall be the vector perpendicular to old and new forward + vec3 newup = normalize(cross(newright, newfw)); // the new up direction shall be the vector perpendicular to new right and new forward + // TODO: handle the two edge cases where newfw == (oldfw or -1*oldfw) + mat3 rotmat = mat3( // assemble the rotation matrix + newup, + newfw, + newright + ); + + // if the cone is not attached to the unit, exploit that direction allows us to smoothen anim + if (attachedtounitID < 0.5){ + lightCenterPosition += worldposrad2.xyz * timeInfo.w; + } + + // rotate the cone, and place it into local space + worldPos.xyz = rotmat * worldPos.xyz + lightCenterPosition; + + + // move the cone into piece or world space: + worldPos.xyz = (placeInWorldMatrix * vec4(worldPos.xyz, 1.0)).xyz; + + // set the center pos of the light: + v_worldPosRad.xyz = (placeInWorldMatrix * vec4(lightCenterPosition.xyz, 1.0)).xyz;; + v_depths_center_map_model_min = depthAtWorldPos(vec4(v_worldPosRad.xyz,1.0)); + + // Clear out the translation from the cone direction, and turn the cone according to the piece matrix + v_worldPosRad2.xyz = mat3(placeInWorldMatrix) * v_worldPosRad2.xyz; + + v_position = worldPos; + } + #line 13000 + // Get the heightmap and the normal map at the center position of the light in v_worldPosRad.xyz + + vec2 uvhm = heightmapUVatWorldPos(v_worldPosRad.xz); + v_lightcenter_gradient_height.w = textureLod(heightmapTex, uvhm, 0.0).x; + + vec4 mapnormals = textureLod(mapnormalsTex, uvhm, 0.0); + mapnormals.g = sqrt( 1.0 - mapnormals.r * mapnormals.r - mapnormals.a * mapnormals.a); + v_lightcenter_gradient_height.xyz = mapnormals.rga; + + // vec4 windInfo; // windx, windy, windz, windStrength + v_noiseoffset = vec4(windX, 0, windZ,0) * (-0.0156); + //v_noiseoffset = vec4(0.0); + //v_noiseoffset.y = windX + windZ; + + gl_Position = cameraViewProj * v_position; + v_screenUV = SNORM2NORM(gl_Position.xy / gl_Position.w); + + // pass everything on to fragment shader: + + } - - diff --git a/luaui/Widgets/Shaders/distortion_gl4.frag.glsl b/luaui/Widgets/Shaders/distortion_gl4.frag.glsl deleted file mode 100644 index d09c0ce79ac..00000000000 --- a/luaui/Widgets/Shaders/distortion_gl4.frag.glsl +++ /dev/null @@ -1,1031 +0,0 @@ -#version 420 -#extension GL_ARB_uniform_buffer_object : require -#extension GL_ARB_shading_language_420pack: require -// This shader is (c) Beherith (mysterme@gmail.com) - -//__ENGINEUNIFORMBUFFERDEFS__ -//__DEFINES__ - -#line 30000 - - -in DataVS { - flat vec4 v_worldPosRad; // center, radius - flat vec4 v_worldPosRad2; // direction, theta - flat vec4 v_baseparams; // lifeStrength, effectStrength, unused, unused - flat vec4 v_universalParams; // noiseStrength, noiseScaleSpace, distanceFalloff, onlyModelMap - flat vec4 v_lifeParams; // spawnFrame, lifeTime, rampUp, decay - flat vec4 v_effectParams; // effectparam1, effectparam2, windAffected, effectType - #ifdef UNIFORMSBUFFERCOPY - flat vec4 v_unibuffercopy; - #endif - noperspective vec2 v_screenUV; // i have no fucking memory as to why this is set as noperspective -}; - -#define LIFESTRENGTH v_baseparams.x -#define EFFECTSTRENGTH v_baseparams.y -#define STARTRADIUS v_baseparams.z - -#define NOISESTRENGTH v_universalParams.x -#define NOISESCALESPACE v_universalParams.y -#define DISTANCEFALLOFF v_universalParams.z -#define ONLYMODELMAP v_universalParams.w - -#define SPAWNFRAME v_lifeParams.x -#define LIFETIME v_lifeParams.y -#define RAMPUP v_lifeParams.z -#define DECAY v_lifeParams.w - -#define EFFECTPARAM1 v_effectParams.x -#define EFFECTPARAM2 v_effectParams.y -#define WINDAFFECTED v_effectParams.z -#define EFFECTTYPE v_effectParams.w - - -uniform sampler2D mapDepths; -uniform sampler2D modelDepths; -uniform sampler3D noise3DCube; - -uniform float pointbeamcone = 0; - -// = 0; // 0 = point, 1 = beam, 2 = cone -uniform float radiusMultiplier = 1.0; -uniform float intensityMultiplier = 1.0; - -uniform vec2 windXZ = vec2(0.0, 0.0); - -out vec4 fragColor; - -// Kinda useful debug macro: -// RED is the fractional part of the input (clamped a little bit to ensure that [0-1] is clearly visible) -// GREEN is the square root of the floor of the input divided by 256 -// Blue is for negative numbers -#define DEBUG(x) fragColor.rgba = vec4( fract(x*0.999 + 0.0001), sqrt(floor(x) / 256.0),(x < 0? 1 : 0),1.0); return; - -// Shows the fract of 1/10th of the input 3d vector -#define DEBUGPOS(x) fragColor.rgba = vec4(fract(x * 0.1 + 0.0001),1.0); return; - -// Given a beam between beamStart and beamEnd, returns the pos on the beam closest to desired Point -vec3 closestbeam(vec3 point, vec3 beamStart, vec3 beamEnd){ - vec3 beamvec = beamEnd -beamStart ; - vec3 pointbeam = point - beamStart; - float c1 = dot(pointbeam, beamvec); - float c2 = dot(beamvec, beamvec); - if (c1 <=0 ) return beamStart; - if (c2 <=c1) return beamEnd; - return beamStart + (c1/c2) * beamvec; -} -//https://iquilezles.org/articles/distfunctions/ - -// Given a ray origin and a direction, returns the closes point on the ray in xyz and the distance in w -vec4 closestdistortionlp_distance (vec3 ro, vec3 rd, vec3 P){ - float t0 = dot(rd, P - ro) / dot(rd, rd); - vec3 intersectPoint = ro + t0 * rd; - return vec4(intersectPoint, length(P - intersectPoint)); -} - -// Given two rays, returns the minimum distance between them -//https://math.stackexchange.com/questions/2213165/find-shortest-distance-between-lines-in-3d -float distancebetweenlines(vec3 r1, vec3 e1, vec3 r2, vec3 e2){ // point1, dir1, point2, dir2 - //todo handle the case where e1 == e2 - vec3 n = cross(e1, e2); // n is the normal of the line connecting them - float distance = dot ( n, r1-r2) / length(n); - return distance; -} - -// Given a ray origin and direction, and a line segment start and end point, which point on the ray is closest to the line segment? -vec3 ray_linesegment_closestpoint(vec3 rayOrigin, vec3 rayDirection, vec3 lineStart, vec3 lineEnd){ - - vec3 lineDir = lineEnd - lineStart; - vec3 rayToLineStart = lineStart - rayOrigin; - vec3 rayToLineEnd = lineEnd - rayOrigin; - - float t1 = dot(rayToLineStart, rayDirection); - float t2 = dot(rayToLineEnd, rayDirection); - - vec3 closestPointOnRayToLineStart = rayOrigin + t1 * rayDirection; - vec3 closestPointOnRayToLineEnd = rayOrigin + t2 * rayDirection; - - float distToLineStart = length(closestPointOnRayToLineStart - lineStart); - float distToLineEnd = length(closestPointOnRayToLineEnd - lineEnd); - - if (distToLineStart < distToLineEnd) { - return closestPointOnRayToLineStart; - } else { - return closestPointOnRayToLineEnd; - } -} - - - -// https://gist.github.com/wwwtyro/beecc31d65d1004f5a9d -vec2 raySphereIntersect(vec3 rayOrigin, vec3 rayDirection, vec3 sphereCenter, float sphereRadius) { - // - r0: ray origin - // - rd: normalized ray direction - // - s0: sphere center - // - sr: sphere radius - // - Returns distance from r0 to first intersection with sphere in X, and the distance to the second intersection in Y - // or -1.0 if no intersection. - float a = dot(rayDirection, rayDirection); - vec3 sphereCenter_to_rayOrigin = rayOrigin - sphereCenter; - float b = 2.0 * dot(rayDirection, sphereCenter_to_rayOrigin); - float c = dot(sphereCenter_to_rayOrigin, sphereCenter_to_rayOrigin) - (sphereRadius * sphereRadius); - float disc = b * b - 4.0 * a* c; - if (disc < 0.0) { - return vec2(-1.0, -1.0); - }else{ - disc = sqrt(disc); - return vec2(-b - disc, -b + disc) / (2.0 * a); - } -} - -// Given a ray origin and a direction, returns the closes point on the ray in xyz and the distance in w -// marginally faster, about the cost as a single octave of perlin -vec4 ray_to_capsule_distance_squared(vec3 rayOrigin, vec3 rayDirection, vec3 cap1, vec3 cap2){ // point1, dir1, beamStart, beamEnd - // returns the squared distance of the ray and the line segment in w - // returns the closest point on beam in xyz - float rd_dot_rd_inv = 1.0 / dot(rayDirection, rayDirection); - - float t1 = dot(rayDirection, cap1 - rayOrigin) * rd_dot_rd_inv; - vec3 intersectPoint1 = rayOrigin + t1 * rayDirection; - - float t2 = dot(rayDirection, cap2 - rayOrigin) * rd_dot_rd_inv; - vec3 intersectPoint2 = rayOrigin + t2 * rayDirection; - - vec3 cap2tocap1 = cap2 - cap1; - - vec3 interSectToC2 = cap2 - intersectPoint2; - vec3 interSectToC1 = cap1 - intersectPoint1; - - float angle1 = dot(cap2tocap1, interSectToC1); - float angle2 = dot(cap2tocap1, interSectToC2); - - vec3 connectornormal = cross(rayDirection, cap2tocap1); // n is the normal of the line connecting them - float dd = dot(connectornormal, rayOrigin - cap1); // this is the angle between the connector normal and - float sqdistline = dd*dd / dot(connectornormal, connectornormal); // sqdistline; - - float distcap2 = dot(interSectToC2, interSectToC2) ; - float distcap1 = dot(interSectToC1, interSectToC1) ; //sqdistends - - vec3 closestpointbeam = cap1 + cap2tocap1 * sqrt(abs(distcap1 - sqdistline)/dot(cap2tocap1,cap2tocap1)); - vec4 finalposanddist = mix(vec4(cap1, distcap1) , - vec4(cap2, distcap2) , - step(distcap2, distcap1)); - - if (angle1 < 0 && angle2 > 0){ // this means that our ray is hitting between the caps - finalposanddist.w = sqdistline; - finalposanddist.xyz = closestpointbeam; - } - finalposanddist.w = sqrt(finalposanddist.w); - return finalposanddist; -} - - -vec3 plane_point_dir_to_normal(vec3 point, vec3 planeDir, vec3 viewDirection){ - vec3 planeTangent = normalize(cross(planeDir, viewDirection)); // this is now tangential to the plane - return normalize(cross(planeTangent, planeDir)); -} - -vec4 ray_to_plane_intersection_point( vec3 ro, vec3 rd, vec3 planeNormal, vec3 planePoint){ - float d = dot(planeNormal, planePoint); - float t = (d - dot(planeNormal, ro)) / dot(planeNormal, rd); - return vec4(ro + t * rd, t); -} -//http://www.realtimerendering.com/intersections.html - - -// The neat thing about this approach is that its quite generic in the sense of trivially being identical for spheres and beams -// Given a ray defined by rayOrigin and rayDirection, and a line segment defined with lineStart and lineEnd, -// Which point on the ray is closest to the line segment, and which point on the line segment is closest to the ray? -// Returns the closest point on the ray in XYZ and the distance to the line segment in W -// Also places the closest point on the line segment in the XYZ and the distance in W of out vec4 lineClosestPoint -// Write a GLSL function to solve the above problem by continuing the GLSL function definition below: -// THIS IS THE ONLY CORRECT IMLPEMENTATION!!!!!!! -vec4 ray_line_segment_closestpoint_on_ray_and_segment2(in vec3 rayOrigin, in vec3 rayDirection, - in vec3 lineStart, in vec3 lineEnd, - out vec4 closestPointOnSegment) { - vec3 lineStartToEnd = lineEnd - lineStart; // Direction vector of segment - vec3 originToStart = lineStart - rayOrigin; - - float lineLenSQR = dot(lineStartToEnd, lineStartToEnd); // Squared length of segment - float dotRayLine = dot(rayDirection, lineStartToEnd); - float d = dot(rayDirection, originToStart); - float e = dot(lineStartToEnd, originToStart); - - float D = lineLenSQR - dotRayLine * dotRayLine; // Denominator for s and t parameters - float sN, sD = D; - float tN, tD = D; - - // Check if lines are almost parallel - if (abs(D) < 1e-8) { - sN = 0.0; // Force s to zero - sD = 1.0; // Prevent division by zero - tN = d; - tD = 1.0; - } else { - sN = (dotRayLine * d - e); - tN = (lineLenSQR * d - dotRayLine * e); - } - - // Compute the closest point parameter s on the segment [0,1] - float s = sN / sD; - s = clamp(s, 0.0, 1.0); - float t; - // Recompute t for the closest point on the ray - if (abs(D) < 1e-8) { - t = 0.0; - } else { - t = (dotRayLine * s + d) ; - } - - // Ensure t is non-negative (since the ray extends from the origin in the positive direction) - t = max(t, 0.0); - - // Compute the closest points on the segment and the ray - closestPointOnSegment.xyz = lineStart + s * lineStartToEnd; - vec3 closestPointOnRay = rayOrigin + t * rayDirection; - - // Compute the distance between the closest points - float distance = length(closestPointOnSegment.xyz - closestPointOnRay); - closestPointOnSegment.w = distance; - - return vec4(closestPointOnRay, distance); -} - -//https://iquilezles.org/articles/intersectors/ -// capsule defined by extremes pa and pb, and radious ra -// Note that only ONE of the two spherical caps is checked for intersections, -// which is a nice optimization -float capIntersect( in vec3 ro, in vec3 rd, in vec3 pa, in vec3 pb, in float ra ) -{ - vec3 ba = pb - pa; - vec3 oa = ro - pa; - float baba = dot(ba,ba); - float bard = dot(ba,rd); - float baoa = dot(ba,oa); - float rdoa = dot(rd,oa); - float oaoa = dot(oa,oa); - float a = baba - bard*bard; - float b = baba*rdoa - baoa*bard; - float c = baba*oaoa - baoa*baoa - ra*ra*baba; - float h = b*b - a*c; - if( h >= 0.0 ) - { - float t = (-b-sqrt(h))/a; - float y = baoa + t*bard; - // body - if( y>0.0 && y0.0 ) return -b - sqrt(h); - } - return -1.0; -} - - -//Write me a glsl function that gives the distances to the intersection points between a ray, given a vec3 rayPos and vec3 rayDir and cone rounded on both ends given with vec3 pointA, vec3 pointB, float radiusA, float radiusB -vec2 intersectRoundedCone(vec3 rayPos, vec3 rayDir, vec3 pointA, vec3 pointB, float radiusA, float radiusB) { - // Compute the cone axis and its length - vec3 ba = pointB - pointA; - float h = length(ba); - vec3 ba_norm = ba / h; // Normalize the cone axis - - // Compute rate of change of radius along the cone axis - float m0 = (radiusB - radiusA) / h; - float n0 = radiusA; // Starting radius at pointA - - // Vector from pointA to ray origin - vec3 oa = rayPos - pointA; - - // Projections onto the cone axis - float dd = dot(rayDir, ba_norm); - float oc = dot(oa, ba_norm); - - // Components perpendicular to the cone axis - vec3 w = rayDir - ba_norm * dd; - vec3 u = oa - ba_norm * oc; - - // Quadratic coefficients for intersection with the cone - float m = m0 * dd; - float n = m0 * oc + n0; - - float A = dot(w, w) - m * m; - float B = 2.0 * (dot(w, u) - m * n); - float C = dot(u, u) - n * n; - - // Solve the quadratic equation A*t^2 + B*t + C = 0 - float discriminant = B * B - 4.0 * A * C; - vec2 tCone = vec2(-1.0); - if (discriminant >= 0.0) { - float sqrtDisc = sqrt(discriminant); - float t0 = (-B - sqrtDisc) / (2.0 * A); - float t1 = (-B + sqrtDisc) / (2.0 * A); - - // Check if intersection points are within the valid height of the cone - float y0 = oc + t0 * dd; - if (t0 >= 0.0 && y0 >= 0.0 && y0 <= h) { - tCone[0] = t0; - } - - float y1 = oc + t1 * dd; - if (t1 >= 0.0 && y1 >= 0.0 && y1 <= h) { - tCone[1] = t1; - } - } - - // Intersection with sphere at pointA - float A_sphereA = dot(rayDir, rayDir); - float B_sphereA = 2.0 * dot(oa, rayDir); - float C_sphereA = dot(oa, oa) - radiusA * radiusA; - - discriminant = B_sphereA * B_sphereA - 4.0 * A_sphereA * C_sphereA; - vec2 tSphereA = vec2(-1.0); - if (discriminant >= 0.0) { - float sqrtDisc = sqrt(discriminant); - float t0 = (-B_sphereA - sqrtDisc) / (2.0 * A_sphereA); - float t1 = (-B_sphereA + sqrtDisc) / (2.0 * A_sphereA); - if (t0 >= 0.0) tSphereA[0] = t0; - if (t1 >= 0.0) tSphereA[1] = t1; - } - - // Intersection with sphere at pointB - vec3 ob = rayPos - pointB; - float A_sphereB = dot(rayDir, rayDir); - float B_sphereB = 2.0 * dot(ob, rayDir); - float C_sphereB = dot(ob, ob) - radiusB * radiusB; - - discriminant = B_sphereB * B_sphereB - 4.0 * A_sphereB * C_sphereB; - vec2 tSphereB = vec2(-1.0); - if (discriminant >= 0.0) { - float sqrtDisc = sqrt(discriminant); - float t0 = (-B_sphereB - sqrtDisc) / (2.0 * A_sphereB); - float t1 = (-B_sphereB + sqrtDisc) / (2.0 * A_sphereB); - if (t0 >= 0.0) tSphereB[0] = t0; - if (t1 >= 0.0) tSphereB[1] = t1; - } - - // Collect all valid intersection distances - float tMin = 1e20; - float tMax = -1.0; - float tValues[6] = float[6](tCone[0], tCone[1], tSphereA[0], tSphereA[1], tSphereB[0], tSphereB[1]); - - for (int i = 0; i < 6; ++i) { - float t = tValues[i]; - if (t >= 0.0) { - tMin = min(tMin, t); - tMax = max(tMax, t); - } - } - - if (tMin > tMax || tMin == 1e20) { - // No valid intersection - return vec2(-1.0); - } else { - return vec2(tMin, tMax); - } -} - -// https://iquilezles.org/articles/distfunctions -float dot2(in vec3 v ) { return dot(v,v); } -float sdRoundCone(vec3 p, vec3 a, vec3 b, float r1, float r2) -{ - // sampling independent computations (only depend on shape) - vec3 ba = b - a; - float l2 = dot(ba,ba); - float rr = r1 - r2; - float a2 = l2 - rr*rr; - float il2 = 1.0/l2; - - // sampling dependant computations - vec3 pa = p - a; - float y = dot(pa,ba); - float z = y - l2; - float x2 = dot2( pa*l2 - ba*y ); - float y2 = y*y*l2; - float z2 = z*z*l2; - - // single square root! - float k = sign(rr)*rr*rr*x2; - if( sign(z)*a2*z2 > k ) return sqrt(x2 + z2) *il2 - r2; - if( sign(y)*a2*y2 < k ) return sqrt(x2 + y2) *il2 - r1; - return (sqrt(x2*a2*il2)+y*rr)*il2 - r1; -} - - -// Value Noise 3D Deriv -// Return value range of 0.0->1.0, with format vec4( value, xderiv, yderiv, zderiv ) -// -vec4 Value3D_Deriv( vec3 P ) -{ - // https://github.com/BrianSharpe/Wombat/blob/master/Value3D_Deriv.glsl - - // establish our grid cell and unit position - vec3 Pi = floor(P); - vec3 Pf = P - Pi; - vec3 Pf_min1 = Pf - 1.0; - - // clamp the domain - Pi.xyz = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0; - vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 ); - - // calculate the hash - vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy; - Pt *= Pt; - Pt = Pt.xzxz * Pt.yyww; - vec2 hash_mod = vec2( 1.0 / ( 635.298681 + vec2( Pi.z, Pi_inc1.z ) * 48.500388 ) ); - vec4 hash_lowz = fract( Pt * hash_mod.xxxx ); - vec4 hash_highz = fract( Pt * hash_mod.yyyy ); - - // blend the results and return - vec3 blend = Pf * Pf * Pf * (Pf * (Pf * 6.0 - 15.0) + 10.0); - vec3 blendDeriv = Pf * Pf * (Pf * (Pf * 30.0 - 60.0) + 30.0); - vec4 res0 = mix( hash_lowz, hash_highz, blend.z ); - vec4 res1 = mix( res0.xyxz, res0.zwyw, blend.yyxx ); - vec4 res3 = mix( vec4( hash_lowz.xy, hash_highz.xy ), vec4( hash_lowz.zw, hash_highz.zw ), blend.y ); - vec2 res4 = mix( res3.xz, res3.yw, blend.x ); - return vec4( res1.x, 0.0, 0.0, 0.0 ) + ( vec4( res1.yyw, res4.y ) - vec4( res1.xxz, res4.x ) ) * vec4( blend.x, blendDeriv ); -} - -vec4 curl3d( vec3 P ) -{ - vec4 n1 = Value3D_Deriv( P ); - vec4 n2 = Value3D_Deriv( P * 1.72198 ); - return vec4( n1.x + n2.x, cross(n1.yzw, n2.yzw) ); -} - -// shockwave UV Displacement -// Calculate how much the UV coordinates should be displaced at currentpos in world space of the screen copy texture to simulate a shockwave starting from position centerpos, with the camera looking at viewdirections. -// The maximum radius of the shockwave is given in shockwaveRadius, and the timeFraction goes from 0 to 1 to simulate the shockwave expanding over time. -// Ensure that the UV displacement is correctly rotated given the angle between the viewDirection and the direction of the shockwave starting from centerpos - -vec3 shockWaveDisplacement2(vec3 centerpos, vec3 currentpos, vec3 viewDirection, float shockwaveRadius, float timeFraction) { - vec3 displacement = vec3(0.0); - vec3 toCenter = currentpos - centerpos; - float distance = length(toCenter); - float normalizedDistance = distance / shockwaveRadius; - - if (normalizedDistance < 1.0) { - float wave = sin(normalizedDistance * 3.14159 * 2.0 - timeFraction * 3.14159 * 2.0); - float attenuation = 1.0 - normalizedDistance; - displacement = viewDirection * wave * attenuation; - } - - return displacement; -} - -vec3 shockWaveDisplacement(vec3 centerpos, vec3 currentpos, vec3 viewDirection, float shockwaveRadius, float timeFraction) { - // Calculate direction vector from center to current position - vec3 dir = currentpos - centerpos; - - // Define the up vector (assuming Y-up coordinate system) - vec3 up = vec3(0.0, 1.0, 0.0); - - // Calculate the camera's right and up vectors - vec3 right = normalize(cross(viewDirection, up)); - vec3 cameraUp = normalize(cross(right, viewDirection)); - - // Transform the direction vector into the camera's coordinate space - vec3 dirInCameraSpace; - dirInCameraSpace.x = dot(dir, right); - dirInCameraSpace.y = dot(dir, cameraUp); - dirInCameraSpace.z = dot(dir, -viewDirection); - - // Compute the 2D distance from the center in camera space - float distance = length(dirInCameraSpace.xy); - // Calculate the current radius of the shockwave - float currentRadius = shockwaveRadius * timeFraction; - // Compute the difference between the distance and the shockwave's current radius - float diff = distance - currentRadius; - - // Define the width and amplitude of the shockwave effect - float width = 100.1; // Controls the width of the shockwave ring - float amplitude = 0.1; // Maximum displacement amount - - // Calculate the displacement amount using a Gaussian function - float displacementAmount = amplitude * exp(-diff * diff / (2.0 * width * width)); - - // Normalize the direction in camera space - vec2 dirNormalized = dirInCameraSpace.xy / distance; - - // Compute the displacement vector in 2D - vec2 displacement = dirNormalized * displacementAmount; - - // Return the displacement vector with zero z-component - return vec3(displacement * 10, 0.0); -} - -// returns the Screen UV coordinates [0-1] and estimated depth of a given world position -vec3 worldToScreenUVZ(vec3 worldPosition){ - vec4 screenPos = cameraViewProj * vec4(worldPosition, 1.0); - screenPos.xyz = screenPos.xyz / screenPos.w; - screenPos.xyz = screenPos.xyz * 0.5 + 0.5; - return screenPos.xyz; -} - -// Parabola (try it in graphtoy.com) A nice choice to remap the 0..1 interval into 0..1, such that the corners are mapped to 0 and the center to 1. You can then rise the parabolar to a power k to control its shape. -// https://iquilezles.org/articles/functions/ -float parabola( float x, float k ) -{ - return pow( 4.0*x*(1.0-x), k ); -} - -// Power Curve This is a generalization of the Parabola() above. It also maps the 0..1 interval into 0..1 by keeping the corners mapped to 0. But in this generalziation you can control the shape one either side of the curve, which comes handy when creating leaves, eyes, and many other interesting shapes. -// https://iquilezles.org/articles/functions/ -// Play with it here: https://www.desmos.com/calculator/2gecekm83w -float pcurve( float x, float a, float b ) -{ - float k = pow(a+b,a+b)/(pow(a,a)*pow(b,b)); - return k*pow(x,a)*pow(1.0-x,b); -} - -// The precomputed scaling factor version -// Precompute K with the calculator here: https://www.desmos.com/calculator/2gecekm83w -float pcurve_k( float x, float a, float b, float k ) -{ - return k*pow(x,a)*pow(1.0-x,b); -} - -#line 31000 -void main(void) -{ - //-------------------------- BEGIN SHARED SECTION --------------------- - int effectType = int(round(EFFECTTYPE)); - - // TODO: Get the view vector before fetching texels for speedups, we cant really bail on all that many fragments... - float mapdepth = texture(mapDepths, v_screenUV).x; - float modeldepth = texture(modelDepths, v_screenUV).x; - - float worlddepth = min(mapdepth, modeldepth); - // TODO: isnt modeldepth 0 where there is no model fucking up everything later on? - - float ismodel = 0; - // Only query the textures if the backface of the volume is further than the world fragment - - // We are processing a model fragment - if (modeldepth < mapdepth) { - ismodel = 1; - } - - vec4 fragWorldPos = vec4( vec3(v_screenUV.xy * 2.0 - 1.0, worlddepth), 1.0); - - // reconstruct view position from depth and camera view proj inv: - - fragWorldPos = cameraViewProjInv * fragWorldPos; - fragWorldPos.xyz = fragWorldPos.xyz / fragWorldPos.w; // YAAAY this works! - //DEBUGPOS(fragWorldPos.xyz * 0.1); // Debug fragment world position - - vec3 camPos = cameraViewInv[3].xyz; - vec3 cameraDir = -1.0 * vec3(cameraView[0].z,cameraView[1].z,cameraView[2].z); - - float fragDistance = length(camPos - fragWorldPos.xyz); - vec3 viewDirection = (camPos - fragWorldPos.xyz) / fragDistance; // vector pointing in the direction of the eye ray - - vec3 viewDirFromDepth = viewDirection; - - vec4 viewDirWithoutDepth = vec4( vec3(v_screenUV.xy * 2.0 - 1.0, 0.0), 1.0); - viewDirWithoutDepth = cameraViewProjInv * viewDirWithoutDepth; - viewDirWithoutDepth.xyz = viewDirWithoutDepth.xyz/viewDirWithoutDepth.w; - viewDirWithoutDepth.xyz = normalize(camPos - viewDirWithoutDepth.xyz); - - float distortionRadius = v_worldPosRad.w; - float distortionRadiusInv = 1.0 / distortionRadius; - - vec3 distortionToWorld = vec3(0); // The vector pointing from distortion source to fragment world pos - vec3 distortionPosition = vec3(0); // This is the position of the distortion illuminating the fragment - vec4 distortionEmitPosition = vec4(0); // == distortionPosition, except for beams, where the distortionEmitPosition for a ray is different than for a world fragment - vec3 EntryPoint = vec3(0); // Point of entry into the distortion volume from the camera - vec3 ExitPoint = vec3(0); // point of exit from the distortion volume away from the camera - vec3 MidPoint = vec3(0); // midpoint between entry and exit points - vec2 nearFarDistances = vec2(0); // the distances to the nearest and farthest points on the distortion source - - vec4 closestPointOnRay = vec4(0); // the point on the ray that is closest to the distortion source (xyz) and the distance to it (w) - - // In frames of course, plus timeOffset - float currentTime = timeInfo.x + timeInfo.w; - - // Distortioning components we wish to collect along the way: - float distance_attenuation = 0; // Just the distance from the distortion source (multiplied with falloff for cones - - float relativeDensity = 1.0; - //fragColor.rgba = vec4(fract(fragWorldPos.xyz * 0.1),1.0); return; // Debug fragment world position - - #line 32000 - if (pointbeamcone < 0.5){ //point - distortionPosition = v_worldPosRad.xyz; - distortionEmitPosition.xyz = distortionPosition; - - distortionToWorld = fragWorldPos.xyz - distortionPosition; - closestPointOnRay = closestdistortionlp_distance(camPos, viewDirection, distortionPosition); - distortionEmitPosition.w = closestPointOnRay.w; - - // Need to invert view direction as we need ray pointing from camera to sphere - nearFarDistances = raySphereIntersect(camPos, -1 * viewDirection, distortionPosition, distortionRadius); - EntryPoint = camPos + nearFarDistances.x * -viewDirection; - ExitPoint = camPos + nearFarDistances.y * -viewDirection; - MidPoint = (EntryPoint + ExitPoint) * 0.5; - distance_attenuation = clamp( 1.0 - length (distortionPosition - MidPoint) * distortionRadiusInv, 0, 1); - relativeDensity = clamp(length(EntryPoint- ExitPoint) / (2*distortionRadius), 0.0, 1.0); - - #line 33000 - }else if (pointbeamcone < 1.5){ // beam - vec3 beamHalfLength = v_worldPosRad2.xyz - v_worldPosRad.xyz; - vec3 beamStart = v_worldPosRad.xyz - beamHalfLength; - vec3 beamEnd = v_worldPosRad.xyz + beamHalfLength; - distortionPosition = closestbeam(fragWorldPos.xyz, beamStart, beamEnd); - - distortionToWorld = fragWorldPos.xyz - distortionPosition; - - closestPointOnRay = ray_line_segment_closestpoint_on_ray_and_segment2(camPos, -viewDirection, beamStart, beamEnd, distortionEmitPosition); - - // Find the close and far distances to the beam volume - nearFarDistances.x = capIntersect( camPos, -viewDirection, beamStart, beamEnd, distortionRadius); - nearFarDistances.y = - capIntersect( camPos, viewDirection, beamStart, beamEnd, distortionRadius); - - EntryPoint = (-viewDirection) * nearFarDistances.x + camPos; - ExitPoint = (-viewDirection) * nearFarDistances.y + camPos; - MidPoint = (EntryPoint + ExitPoint) * 0.5; - distance_attenuation = clamp( 1.0 - closestPointOnRay.w *distortionRadiusInv, 0,1); - relativeDensity = clamp(length(EntryPoint- ExitPoint) / (2*distortionRadius), 0.0, 1.0); - - #line 34000 - }else if (pointbeamcone > 1.5){ // cone - distortionPosition = v_worldPosRad.xyz; - - distortionToWorld = fragWorldPos.xyz - distortionPosition; - - vec3 coneDirection = normalize(v_worldPosRad2.xyz); - - float coneAngleCosine = v_worldPosRad2.w; - float coneHalfAngleSine = sqrt(1.0 - coneAngleCosine * coneAngleCosine); - - //Cone maximizing sphere: http://mathcentral.uregina.ca/QQ/database/QQ.09.07/s/juan1.html - float coneHeight = distortionRadius; - float coneWidth = distortionRadius * coneHalfAngleSine; - float coneSideLengthInv = inversesqrt(coneHeight * coneHeight + coneWidth * coneWidth); - float biggestradius = coneHeight * coneWidth * coneSideLengthInv / ( 1 + coneWidth * coneSideLengthInv); - vec3 endPoint = distortionPosition + coneDirection * (distortionRadius - biggestradius); - nearFarDistances = intersectRoundedCone(camPos, -viewDirection, distortionPosition, endPoint , biggestradius * 0.11, biggestradius) ; - - EntryPoint = camPos + nearFarDistances.x * -viewDirection; - ExitPoint = camPos + nearFarDistances.y * -viewDirection; - MidPoint = (EntryPoint + ExitPoint) * 0.5; - - // Calculate the closest point on the view ray to the cone - closestPointOnRay = ray_line_segment_closestpoint_on_ray_and_segment2(camPos, -viewDirection, distortionPosition, endPoint, distortionEmitPosition); - - distance_attenuation = clamp( 1.0 - length(MidPoint - distortionPosition) / coneHeight, 0,1) * 1.0; - float distortionAngleCosine = dot(coneDirection, normalize(MidPoint - distortionPosition)); - float coneEdgeFactor = clamp((distortionAngleCosine - coneAngleCosine) / (1.0 - coneAngleCosine), 0.0, 1.0); - coneEdgeFactor = sqrt( coneEdgeFactor) * 4; - relativeDensity = clamp(length(EntryPoint- ExitPoint) / (2*biggestradius), 0.0, 1.0); - } - - #line 35000 - // If the fragment is inside the volume, we need to calculate the volumetric fraction - float volumetricFraction = 1.0; // The fraction of the ray that passes through the volume. - if (fragDistance < nearFarDistances.y) { - volumetricFraction = 1.0 - clamp( abs(nearFarDistances.y - fragDistance) / abs(nearFarDistances.y - nearFarDistances.x), 0.0, 1.0); - } - if (fragDistance < nearFarDistances.x || nearFarDistances.x < 0.0) { - fragColor.rgba = vec4(0.0); - return; - } - - // Check if the volume is occluded, bail if yes! - // if ((fragDistance < nearFarDistances.x) || (nearFarDistances.y - nearFarDistances.x < 1e-6)){ fragColor.rgba = vec4(0.0); return; } - // TODO: sample noise here, as most effects need the noise sample, and it should be a shared path along the branches - - - //-------------------------- END SHARED SECTION --------------------- - - - // ------------------------ BEGIN AIR SHOCKWAVE ---------------- - if (effectType == 1){ - // Create an air shockwave displacement based on the distance to the distortion source: - // Bend the distortion beam as many times as it goes through the sphere! - // Lifetime goes from 0 to 1 - float lifeStart = SPAWNFRAME; - float lifeTime = LIFETIME; - //float timeFraction = clamp((currentTime - lifeStart) / lifeTime, 0.0, 1.0); - float elapsedframes = currentTime - lifeStart; - - // From 0 to 1 over the lifetime of the airshockwave - float timeFraction = fract((currentTime - lifeStart) / lifeTime); - - // which direction is the effect going in in world coords?, always points towards us! - vec3 shockDirection = normalize(EntryPoint.xyz - distortionEmitPosition.xyz); - - // Parabolic mapping of 0-1 to [0-1-0] with a parabola on timeFraction - float parabolicStrength = pcurve_k(timeFraction, 0.5, 2.0, 3.5); - - // Falloff due to distance from camera - float distanceToCameraFactor = clamp(300.0/ fragDistance, 0.0, 1.0); - - // Screen-space position of the center of the shockwave: - vec4 DistortionScreenPosition = cameraViewProj * vec4(distortionEmitPosition.xyz, 1.0); - DistortionScreenPosition.xyz = DistortionScreenPosition.xyz / DistortionScreenPosition.w; - - // the normal of the shockwave sphere - // Get the noise sample: - vec3 noisePosition = fragWorldPos.xyz; - - if (NOISESCALESPACE < 0.0){ - noisePosition -= v_worldPosRad.xyz; - } - - // Scale the noise position with the noise scale - noisePosition *= abs(NOISESCALESPACE) * 0.03; - - - // Add the time offset and wind offsets to the noise position - vec3 noiseOffset = vec3(0.0); //vec3(windXZ.x * 0.1, currentTime * 0.01, windXZ.y * 0.1 ) * (1.0 + vec3(WINDAFFECTED, EFFECTPARAM1, WINDAFFECTED)); - - // Normalize the noise sample at noisePosition - noiseOffset - vec4 noiseSampleNorm = (textureLod(noise3DCube, noisePosition - noiseOffset, 0.0) )* 2.0 - 1.0; - - - float refractiveIndex = EFFECTPARAM2 + (noiseSampleNorm.r + 0.5) * NOISESTRENGTH * 0.25 ; - - //Use Snell's law - float cosTheta1 = dot(-viewDirection, shockDirection); - float sinTheta1 = sqrt(1.0 - cosTheta1 * cosTheta1); - float sinTheta2 = sinTheta1 / refractiveIndex; - - float rayBendElmos = 0; - rayBendElmos = sin(asin(sinTheta1) - asin(sinTheta2)); - - // At extremely oblique angles, the refraction can be so strong that the ray bends back towards the camera - // This can be avoided, by softening the refraction at the edges - // So shockWidth should reduce rayBendElmos when abs(cosTheta) is near 0 - float shockWidth = EFFECTPARAM1; - float shockWaveEdgeSoften = pow(distance_attenuation, abs(shockWidth)); - rayBendElmos *= shockWaveEdgeSoften; - - // fragment we are checking is occluding the sphere - if (fragDistance < nearFarDistances.x){ - fragColor.rgba = vec4(0.0 ); - return; - } - - // fragment is behind the sphere - if ((fragDistance > nearFarDistances.y) && shockWidth > 0.0){ - rayBendElmos *= 2.0; - } - - // The displacement is proportional to the distance of the fragment from the intersections of the sphere - - // screen-space direction of the shockwave - vec2 displacementScreen = normalize((DistortionScreenPosition.xy * 0.5 + 0.5) - v_screenUV); - float overallStrength = 10 * rayBendElmos * distanceToCameraFactor * parabolicStrength * LIFESTRENGTH; - vec2 displacementAmount = displacementScreen * overallStrength; - - fragColor.rgba = vec4(displacementAmount * EFFECTSTRENGTH, 0.0, 1.0 ); - } - - - //------------------------- BEGIN GROUND SHOCKWAVE ------------------------- - else if (effectType == 2){ - // Create a ground shockwave displacement that only displaces ground fragments based on the distance to the distortion source: - // TODO: instead of using radius here, adjust radius in the vertex shader! - - // Get the noise sample: - vec3 noisePosition = fragWorldPos.xyz; - - if (NOISESCALESPACE < 0.0){ - noisePosition -= v_worldPosRad.xyz; - } - - // Scale the noise position with the noise scale - noisePosition *= abs(NOISESCALESPACE) * 0.03; - - // Add the time offset and wind offsets to the noise position - //vec3 noiseOffset = vec3(0.0); //vec3(windXZ.x * 0.1, currentTime * 0.01, windXZ.y * 0.1 ) * (1.0 + vec3(WINDAFFECTED, EFFECTPARAM1, WINDAFFECTED)); - vec3 noiseOffset = vec3(windXZ.x * 0.1, 0.1, windXZ.y * 0.1 ) * ( vec3(WINDAFFECTED, 5, WINDAFFECTED)); - - // Normalize the noise sample at noisePosition - noiseOffset - vec4 noiseSampleNorm = (textureLod(noise3DCube, noisePosition - noiseOffset, 0.0) )* 2.0 - 1.0; - - // Lifetime goes from 0 to 1 - float timeFraction = clamp((currentTime - SPAWNFRAME) / LIFETIME, 0.0, 1.0); - - #define COMPRESSION 0.9 - float currentDist = COMPRESSION * distortionRadius + 10 * NOISESTRENGTH * noiseSampleNorm.r; - // TODO : Parameterize out width in elmos - float width = EFFECTPARAM1; - - float groundDistanceToShockCenter = length(fragWorldPos.xyz - distortionPosition.xyz); - - // Effect strength and direction should be abs width'd - // But it should be wider on the rarefaction side than the compression side - // First term is the compression factor, second term is the rarefaction factor - float compressionFactor = max((groundDistanceToShockCenter - currentDist) * COMPRESSION, (currentDist - groundDistanceToShockCenter) * (1.0 - COMPRESSION)); - - float effectStrength = clamp( 1.0 - abs(compressionFactor/ width), 0.0, 1.0); - effectStrength = pow(effectStrength, 3.0); - - // Parabolic mapping of 0-1 to [0-1-0] with a parabola on timeFraction - float parabolicStrength = pcurve_k(timeFraction, 0.5, 2.0, 3.5); - parabolicStrength= 1.0; - - // Falloff due to distance from camera - // TODO: this should really not be based on fragDistance, but on the distance to the distortion source - float distanceToCameraFactor = clamp(1000.0/ fragDistance, 0.0, 1.0); - - // Screen-space position of the center of the shockwave: - - vec4 DistortionScreenPosition = cameraViewProj * vec4(distortionEmitPosition.xyz, 1.0); - DistortionScreenPosition.xyz = DistortionScreenPosition.xyz / DistortionScreenPosition.w; - - - // screen-space direction of the shockwave - vec2 displacementScreen = normalize((DistortionScreenPosition.xy * 0.5 + 0.5) - v_screenUV); - float overallStrength = effectStrength * distanceToCameraFactor * parabolicStrength * LIFESTRENGTH; - - vec2 displacementAmount = displacementScreen * overallStrength; - fragColor.rgba = vec4(displacementAmount * EFFECTSTRENGTH, 0.0, 0.5 * step(0.005,overallStrength) ); - } - - - //------------------------- BEGIN AIRJET ------------------------- - else if (effectType == 3){ - - } - - //------------------------- BEGIN GRAVITYLENS ------------------------- - else if (effectType == 4){ - - } - - //------------------------- BEGIN FUSIONSPHERE ------------------------- - else if (effectType == 5){ - - } - - //------------------------- BEGIN CLOAKDISTORTION ------------------------- - else if (effectType == 6){ - - } - - //------------------------- BEGIN SHIELDSPHERE ------------------------- - else if (effectType == 7){ - float distortionAttenuation = 1.0; // start at max for the center - - - // This should only highlight the very edge of the shield sphere - - float shieldEdgeFactor = clamp(1.0 - abs(length(distortionEmitPosition.xyz - closestPointOnRay.xyz) - distortionRadius +10) * 0.1, 0.0, 1.0); - //shieldEdgeFactor = pcurve_k(shieldEdgeFactor, 0.7, 100.0, 17.0); - shieldEdgeFactor = smoothstep(0.1, 1.0, shieldEdgeFactor); - if (fragDistance < ( length(distortionPosition - camPos) -distortionRadius)){ - fragColor.rgba = vec4(0.0); - return; - } - - //D - distortionAttenuation *= shieldEdgeFactor; - // - - // TODO: Ensure that the distortion is proportionate to the amount of "Hot" volume the ray passes through. - // Get the noise sample: - vec3 noisePosition = MidPoint.xyz; - - if (NOISESCALESPACE < 0.0){ - noisePosition -= v_worldPosRad.xyz; - } - - // Scale the noise position with the noise scale - noisePosition *= abs(NOISESCALESPACE) * 0.03; - - // Add the time offset and wind offsets to the noise position - vec3 noiseOffset = vec3(windXZ.x * 0.1, currentTime * 0.01, windXZ.y * 0.1 ) * (1.0 + vec3(WINDAFFECTED, EFFECTPARAM1, WINDAFFECTED)); - - // Normalize the noise sample at noisePosition - noiseOffset - vec4 noiseSampleNorm = (textureLod(noise3DCube, noisePosition - noiseOffset, 0.0) )* 2.0 - 1.0; - - - // modulate the effect strength with the distance to the heat source: - float distanceToCameraFactor = clamp(300.0/ length(camPos.xyz - MidPoint.xyz), 0.0, 1.0); - noiseSampleNorm *= distanceToCameraFactor * LIFESTRENGTH; - - // Modulate alpha with the distortionAttenuation - noiseSampleNorm *= NOISESTRENGTH; - fragColor.rgba = vec4(noiseSampleNorm.ra * EFFECTSTRENGTH, 0.0, distortionAttenuation); - } - - //------------------------- BEGIN MAGNIFIER ------------------------- - else if (effectType == 8){ - // Calculate the view-space vector that points from from distortion center to the view ray - vec3 magnifierDir = normalize(MidPoint - distortionPosition); - vec3 magnifierNormal = normalize(magnifierDir); - - vec3 DistortionScreenPosition = worldToScreenUVZ(distortionEmitPosition.xyz); - - vec3 MagnifierScreenPosition = worldToScreenUVZ(MidPoint); - - vec3 dirInCameraSpace2 = normalize(MagnifierScreenPosition - DistortionScreenPosition); - float relativeDistance = clamp(1.0 - length(MidPoint - distortionEmitPosition.xyz) / distortionRadius, 0.0, 1.0); - dirInCameraSpace2 *= 1.0 - sqrt(relativeDistance); - dirInCameraSpace2 *= -3.0; - - float distanceToCameraFactor = clamp(300.0/ length(camPos - distortionEmitPosition.xyz), 0.0, 1.0); - dirInCameraSpace2 *= distanceToCameraFactor * EFFECTPARAM1; - //printf(EFFECTPARAM1); - fragColor.rgba = vec4(dirInCameraSpace2.xy * EFFECTSTRENGTH, 0.0, 1.0); - } - - //------------------------- BEGIN Motion Blur ------------------------- - else if (effectType == 11){ - vec3 unittravelDirection = normalize(v_worldPosRad2.xyz); - - vec3 unitUV = worldToScreenUVZ(v_worldPosRad.xyz); - vec3 unitUV2 = worldToScreenUVZ(v_worldPosRad.xyz + v_worldPosRad2.xyz); - vec3 travelDirectionScreen = unitUV2 - unitUV; - if (length(travelDirectionScreen) < 0.001) {fragColor.rgba = vec4(0.0); return;} - travelDirectionScreen = normalize(travelDirectionScreen); - - float travelSpeedMult = clamp((v_worldPosRad2.w - EFFECTPARAM1) * EFFECTPARAM2, 0.0, 1.0); - - fragColor.rgba = vec4(travelDirectionScreen.xy * EFFECTSTRENGTH, -10.0, 1.0); - - if (fragDistance > nearFarDistances.y){ - fragColor.rgba = vec4(0.0); - } - } - - //------------------------- BEGIN HEAT DISTORTION ------------------------- - // Debugging check attenuations for each distortion source type: - // Draw attenuation as a color Green - - else if (effectType == 0){ - - float distortionAttenuation = 1.0; // start at max for the center - - // Multiply the relative volume density: - distortionAttenuation *= relativeDensity; - - // Attenuate with distance: - distortionAttenuation *= distance_attenuation; - - // TODO: plug in custom distoriton falloff power - distortionAttenuation = pow(distortionAttenuation, DISTANCEFALLOFF); - - // Take into account relative distance of ray point closest to distortion source to the distortion source - distortionAttenuation *= volumetricFraction; - - // if the fragment is closer to the camera than the distortion source plus its radius, we can completely skip the distortion - if (fragDistance < ( length(distortionPosition - camPos) -distortionRadius)){ - fragColor.rgba = vec4(0.0); - return; - } - - // --- ADD THE RAMPUP LOGIC HERE --- - float elapsed = currentTime - SPAWNFRAME; // how many frames (or time units) since spawn - // For safety, if RAMPUP <= 0, this means "immediate" or avoid dividing by zero - float rampFactor = 1.0; - if (RAMPUP > 0.0) { - rampFactor = clamp(elapsed / RAMPUP, 0.0, 1.0); - } - - // Now multiply the distortionAttenuation by rampFactor for the fade-in - distortionAttenuation *= rampFactor; - - // TODO: Ensure that the distortion is proportionate to the amount of "Hot" volume the ray passes through. - // Get the noise sample: - vec3 noisePosition = MidPoint.xyz; - - if (NOISESCALESPACE < 0.0){ - noisePosition -= v_worldPosRad.xyz; - } - - // Scale the noise position with the noise scale - noisePosition *= abs(NOISESCALESPACE) * 0.03; - - // Add the time offset and wind offsets to the noise position - vec3 noiseOffset = vec3(windXZ.x * 0.1, currentTime * 0.01, windXZ.y * 0.1 ) * (1.0 + vec3(WINDAFFECTED, EFFECTPARAM1, WINDAFFECTED)); - - // Normalize the noise sample at noisePosition - noiseOffset - vec4 noiseSampleNorm = (textureLod(noise3DCube, noisePosition - noiseOffset, 0.0) )* 2.0 - 1.0; - - // modulate the effect strength with the distance to the heat source: - float distanceToCameraFactor = clamp(300.0/ length(camPos.xyz - MidPoint.xyz), 0.0, 1.0); - noiseSampleNorm *= distanceToCameraFactor * LIFESTRENGTH; - - // Modulate alpha with the distortionAttenuation - noiseSampleNorm *= NOISESTRENGTH; - - fragColor.rgba = vec4(vec3(noiseSampleNorm.ra, 0.0) * EFFECTSTRENGTH , distortionAttenuation); - - }else{ - fragColor.rgba = vec4(1.0);// default fallthrough, should never EVER appear - } - - // is a model fragment and we only want to affect map - if ((ismodel > 0.5) && (ONLYMODELMAP > 0.5)) fragColor.a = 0.0; - - // is map fragment and we only want to to affect models - if ((ismodel < 0.5) && (ONLYMODELMAP < -0.5)) fragColor.a = 0.0; - // final scaling: -} diff --git a/luaui/Widgets/Shaders/distortion_gl4.vert.glsl b/luaui/Widgets/Shaders/distortion_gl4.vert.glsl deleted file mode 100644 index 2da6eb6a7a1..00000000000 --- a/luaui/Widgets/Shaders/distortion_gl4.vert.glsl +++ /dev/null @@ -1,320 +0,0 @@ -#version 420 -#extension GL_ARB_uniform_buffer_object : require -#extension GL_ARB_shader_storage_buffer_object : require -#extension GL_ARB_shading_language_420pack: require - -// This shader is (c) Beherith (mysterme@gmail.com) -#line 5000 - -layout (location = 0) in vec4 position; // xyz and etc garbage -//layout locations 1 and 2 contain primitive specific garbage and should not be used - -layout (location = 3) in vec4 worldposrad; // Centerpos -layout (location = 4) in vec4 worldposrad2; // velocity for points, beam end for beams, dir and theta for cones -layout (location = 5) in vec4 baseparams; // yoffset, effectStrength, startRadius, unused -layout (location = 6) in vec4 universalParams; // noiseStrength, noiseScaleSpace, distanceFalloff, onlyModelMap -layout (location = 7) in vec4 lifeParams; // spawnFrame, lifeTime, rampUp, decay -layout (location = 8) in vec4 effectParams; // effectparam1, effectparam2, windAffected, effectType -layout (location = 9) in uint pieceIndex; // for piece type distortions -layout (location = 10) in uvec4 instData; // matoffset, uniformoffset, teamIndex, drawFlags {id = 5, name = 'instData', size = 4, type = GL.UNSIGNED_INT}, - -#define YOFFSET baseparams.x -#define EFFECTSTRENGTH baseparams.y -#define STARTRADIUS baseparams.z - -#define SPAWNFRAME lifeParams.x -#define LIFETIME lifeParams.y -#define RAMPUP lifeParams.z -#define DECAY lifeParams.w - -//__ENGINEUNIFORMBUFFERDEFS__ -//__DEFINES__ - -layout(std140, binding = 0) readonly buffer MatrixBuffer { - mat4 mat[]; -}; - -struct SUniformsBuffer { - uint composite; // u8 drawFlag; u8 unused1; u16 id; - - uint unused2; - uint unused3; - uint unused4; - - float maxHealth; - float health; - float unused5; - float unused6; - - vec4 drawPos; - vec4 speed; - vec4[4] userDefined; //can't use float[16] because float in arrays occupies 4 * float space -}; - -layout(std140, binding=1) readonly buffer UniformsBuffer { - SUniformsBuffer uni[]; -}; - -#define UNITID (uni[instData.y].composite >> 16) - -#ifdef UNIFORMSBUFFERCOPY - // Note that this is an incorrect copy of the uniformsbuffer, and is computed via a compute shader, so its _HIGHLY EXPERIMENTAL_ - layout(std140, binding=4) buffer UniformsBufferCopy { - SUniformsBuffer uniCopy[]; - }; -#endif - -#line 10000 - -uniform float pointbeamcone = 0;// = 0; // 0 = point, 1 = beam, 2 = cone - -// this uniform needs some extra. If it is 1, then the primitives should point in the -Z direction, and be moved and rotated with the unit itself -// If the unit is not being drawn, it must be switched off - -uniform float attachedtounitID = 0; - -uniform float windX = 0; -uniform float windZ = 0; - -uniform float radiusMultiplier = 1.0; -uniform float intensityMultiplier = 1.0; - -out DataVS { - flat vec4 v_worldPosRad; - flat vec4 v_worldPosRad2; - flat vec4 v_baseparams; // lifeStrength, effectStrength, startRadius, unused - flat vec4 v_universalParams; // noiseStrength, noiseScaleSpace, distanceFalloff, onlyModelMap - flat vec4 v_lifeParams; // spawnFrame, lifeTime, rampUp, decay - flat vec4 v_effectParams; // effectparam1, effectparam2, windAffected, effectType - #ifdef UNIFORMSBUFFERCOPY - flat vec4 v_unibuffercopy; - #endif - noperspective vec2 v_screenUV; -}; - -#define NOISESTRENGTH v_universalParams.x; - -#define SNORM2NORM(value) (value * 0.5 + 0.5) - -void main() -{ - float time = timeInfo.x + timeInfo.w; - int effectType = int(round(effectParams.w)); - float elapsedframes = time - SPAWNFRAME; - float lifeFraction = 1.0; - if (LIFETIME > 1) lifeFraction = clamp(elapsedframes / LIFETIME, 0.0, 1.0); - - float distortionRadius = worldposrad.w; - - // Modulate distortion radius over the lifetime of the distortion - distortionRadius = STARTRADIUS + (distortionRadius - STARTRADIUS) * lifeFraction; - - // Output to the fragment shader - v_worldPosRad = worldposrad ; - v_worldPosRad.w = distortionRadius; - v_worldPosRad2 = worldposrad2; - v_lifeParams = lifeParams; - - vec4 vertexPosition = vec4(1.0); - - mat4 placeInWorldMatrix = mat4(1.0); // this is unity for non-unitID tied stuff - - // Ok so here comes the fun part, where we if we have a unitID then fun things happen - // v_worldPosRad contains the incoming piece-level offset - // v_worldPosRad should be after changing to unit-space - // we have to transform BOTH the center of the distortion to piece-space - // and the vertices of the distortion volume to piece-space - // we need to go from distortion-space to world-space - vec3 distortionCenterPosition = v_worldPosRad.xyz; - v_baseparams = baseparams; - if (attachedtounitID > 0){ - mat4 worldMatrix = mat[instData.x]; - placeInWorldMatrix = worldMatrix; - if (pieceIndex > 0u) { - mat4 pieceMatrix = mat[instData.x + pieceIndex]; - placeInWorldMatrix = placeInWorldMatrix * pieceMatrix; - } - //uint drawFlags = (instData.z & 0x0000100u);// >> 8 ; // hopefully this works - //if (drawFlags == 0u) placeInWorldMatrix = mat4(0.0); // disable if drawflag is set to 0 - // disable if drawflag is set to 0, note that we are exploiting the fact that these should be drawn even if unit is transparent, or if unit only has its shadows drawn. - // This is good because the tolerance for distant shadows is much greater - if ((uni[instData.y].composite & 0x00001fu) == 0u ) placeInWorldMatrix = mat4(0.0); - - - #ifdef UNIFORMSBUFFERCOPY - v_unibuffercopy = uni[instData.y].speed - uniCopy[instData.y].speed; - #endif - - uint teamIndex = (instData.z & 0x000000FFu); //leftmost ubyte is teamIndex - vec4 teamCol = teamColor[teamIndex]; - } - - vec4 worldPos = vec4(1.0); - #line 11000 - if (pointbeamcone < 0.5){ // point - // Scale it and place it into the world - // Make it a tiny bit bigger *(1.1) cause the blocky sphere is smaller than the actual radius - // The -1 is for inverting it so we always see the back faces (great for occlusion testing!) (this should be exploited later on! - - // this is centered around the target positional offset, and scaled locally - vec3 distortionVertexPosition = distortionCenterPosition + -1 * position.xyz * distortionRadius * 1.15; // 1.15 is a magic number that makes the sphere actually fit inside the sphere-ish geometry - - // tranform the vertices to world-space - distortionVertexPosition = (placeInWorldMatrix * vec4(distortionVertexPosition, 1.0)).xyz; - - // tranform the center to world-space - distortionCenterPosition = (placeInWorldMatrix * vec4(distortionCenterPosition, 1.0)).xyz; - - - // Projectile-attached distortions need their own positional smoothing based on the velocity of the projectile and timeOffset (timeInfo.w) - if (attachedtounitID > 0.5) { - // Distortions attached to unitID's need no positional correction - }else{ - // Distortions attached to projectiles need to be smoothed out - if (worldposrad2.w < 1.0) { // We indicate that this is a projectile by setting the w component of worldposrad2 to < 1 - distortionCenterPosition += timeInfo.w * worldposrad2.xyz; - distortionVertexPosition += timeInfo.w * worldposrad2.xyz; - }else{ - - } - } - - v_worldPosRad.xyz = distortionCenterPosition; - vertexPosition = vec4( distortionVertexPosition, 1.0); - } - #line 12000 - else if (pointbeamcone < 1.5){ // beam - // we will tranform along this vector, where Y shall be the upvector - // our null vector is +X - vec3 centertoend = distortionCenterPosition - worldposrad2.xyz; - float halfbeamlength = length(centertoend); - - // Scale the box to correct size (along beam is Y dir) - worldPos.xyz = position.xyz * vec3( distortionRadius , step(position.y, 0) * halfbeamlength + distortionRadius, distortionRadius ); - - // TODO rotate this box - vec3 oldfw = vec3(0,1,0); // The old forward direction is -y - vec3 newfw = normalize(centertoend); // the new forward direction shall be the normal that we want - vec3 newright = normalize(cross(newfw, oldfw)); // the new right direction shall be the vector perpendicular to old and new forward - vec3 newup = normalize(cross(newright, newfw)); // the new up direction shall be the vector perpendicular to new right and new forward - // TODO: handle the two edge cases where newfw == (oldfw or -1*oldfw) - mat3 rotmat = mat3( // assemble the rotation matrix - newup, - newfw, - newright - ); - worldPos.xyz = rotmat * worldPos.xyz; - - // so we now have our rotated box, we need to place it not at the center, but where the piece matrix tells us to - // or where the distortioncenterpos tells us to - - // Place the box in the world - worldPos.xyz += distortionCenterPosition; - - // Copy the parameters to the fragment shader varyings and place the vertex - v_worldPosRad2.xyz = (placeInWorldMatrix * vec4(v_worldPosRad2.xyz, 1.0)).xyz;; - v_worldPosRad.xyz = (placeInWorldMatrix * vec4(distortionCenterPosition.xyz, 1.0)).xyz; - v_worldPosRad.xyz += (v_worldPosRad2.xyz - v_worldPosRad.xyz) * 0.5; - vertexPosition.xyz = (placeInWorldMatrix * vec4(worldPos.xyz, 1.0)).xyz; - - } - #line 12000 - else if (pointbeamcone > 1.5){ // cone - // Input cone that has pointy end up, (y = 1), with radius =1, flat on Y=0 plane - // Make it so that cone tip is at 0 and the opening points to -y - worldPos.xyz = position.xyz; - worldPos.x *= -1.0; // flip the cone inside out - worldPos.y = (worldPos.y*1.1 - 1.) * -1; - - worldPos.xz *= tan(worldposrad2.w); // Scale the flat of the cone by the half-angle of its opening - v_worldPosRad2.w = cos(worldposrad2.w); // pass through the cosine to avoid this calc later on - v_worldPosRad2.xyz = normalize(worldposrad2.xyz); // normalize this here for sanity - - // if the cone is not attached to the unit, exploit that direction allows us to smoothen anim - if (attachedtounitID < 0.5){ - distortionCenterPosition += worldposrad2.xyz * timeInfo.w; - // if its projectile slaved, then flip its direction - v_worldPosRad2.xyz *= -1.0; - } - - worldPos.xyz *= distortionRadius * 1.05; // scale it all by the height of the cone, and a bit of extra - - // Now our cone is opening forward towards -y, but we want it to point into the worldposrad2.xyz - vec3 oldfw = vec3(0.001, -1, 0.001); // The old forward direction is -y, plus a tiny bit to avoid singularity in vector cross products - vec3 newfw = normalize(v_worldPosRad2.xyz); // the new forward direction shall be the normal that we want - vec3 newright = normalize(cross(newfw, oldfw)); // the new right direction shall be the vector perpendicular to old and new forward - vec3 newup = normalize(cross(newright, newfw)); // the new up direction shall be the vector perpendicular to new right and new forward - - mat3 rotmat = mat3( // assemble the rotation matrix - newup, - newfw, - newright - ); - - vec3 rotOffset = rotmat * vec3(0,YOFFSET,0); - distortionCenterPosition += rotOffset; - // rotate the cone, and place it into local space - worldPos.xyz = rotmat * worldPos.xyz + distortionCenterPosition; - - // move the cone into piece or world space: - worldPos.xyz = (placeInWorldMatrix * vec4(worldPos.xyz, 1.0)).xyz; - - // set the center pos of the distortion: - v_worldPosRad.xyz = (placeInWorldMatrix * vec4(distortionCenterPosition.xyz, 1.0)).xyz; - - // Clear out the translation from the cone direction, and turn the cone according to the piece matrix - v_worldPosRad2.xyz = mat3(placeInWorldMatrix) * v_worldPosRad2.xyz; - - vertexPosition = worldPos; - } - #line 13000 - - //-------------------------- BEGIN SHARED SECTION --------------------- - // This section is shared between all distortion shapes - - if (effectType == 11){ - v_worldPosRad2 = uni[instData.y].speed; - } - - // Initialze the distortion strength multiplier - v_baseparams.x = 1.0; - // if the distortion is attached to a unit, and the lifeTime is 0, and the decay is nonzero, then modulate the strength with the units selfillummod - if ((attachedtounitID > 0.5) && (LIFETIME == 0) && (DECAY < 0)){ - float selfIllumMod = max(-0.2, sin(time * 2.0/30.0 + float(UNITID) * 0.1 - 0.5)) + 0.2; - selfIllumMod *= selfIllumMod * (2.0 - selfIllumMod); //Almost Unit Identity - // Almost - selfIllumMod = mix(1.0, selfIllumMod, -1.0 / DECAY); - v_baseparams.x *= selfIllumMod; - } - - // If a lifeParams.z rampup is specified, then - // >1 : how many frames to linearly ramp up to full power - // 0< z <1: use a power curve with exponent Z to ramp up - // Note that rampup can also be used for infinite lifetime distortions to ramp up the distortion strength - if (RAMPUP > 0.0){ - v_baseparams.x *= clamp(elapsedframes / RAMPUP, 0.0, 1.0); - } - - if (LIFETIME > 1){ // Decay only makes sense if lifetime is > 1 - // If a lifeParams.w decay is specified, then - // >1 : how many frames to linearly decay to zero - // 0< z <1: use a power curve with exponent Z to decay - if (DECAY > 0.0){ - if (DECAY > 1) { - // How much life it still has left: - float decayfraction = (LIFETIME - elapsedframes) / DECAY; - v_baseparams.x *= clamp(decayfraction, 0.0, 1.0); - } - else { - float lifeFraction = (LIFETIME - elapsedframes) / LIFETIME; - v_baseparams.x *= clamp(pow(lifeFraction, 10.0 * DECAY),0.0, 1.0); - } - } - } - - // pass everything else on to fragment shader varyings - v_universalParams = universalParams; - v_effectParams = effectParams; - gl_Position = cameraViewProj * vertexPosition; - v_screenUV = SNORM2NORM(gl_Position.xy / gl_Position.w); -} \ No newline at end of file diff --git a/luaui/Widgets/Shaders/infolos.frag.glsl b/luaui/Widgets/Shaders/infolos.frag.glsl index 91edede92c2..21ac388da2c 100644 --- a/luaui/Widgets/Shaders/infolos.frag.glsl +++ b/luaui/Widgets/Shaders/infolos.frag.glsl @@ -1,7 +1,6 @@ -#version 430 core +#version 130 //__DEFINES__ -//__ENGINEUNIFORMBUFFERDEFS__ uniform float time; uniform float outputAlpha; uniform vec2 losTexSize; @@ -11,10 +10,7 @@ uniform vec2 radarTexSize; uniform sampler2D tex0; uniform sampler2D tex1; uniform sampler2D tex2; - -in DataVS { - vec4 texCoord; -}; +in vec2 texCoord; out vec4 fragColor; /* // from http://www.java-gaming.org/index.php?topic=35123.0 @@ -112,94 +108,20 @@ float getTexelF(in sampler2D tex, in vec2 p, in vec2 sizes) return smoothstep(0.0, 1.0, c); } -// This is the fake cubic blending function, which is extremely useful for upsizing without bilinear artifacts -// Could be done ass-backwards if needed -float gatherBlend(vec4 samples, vec2 coords, vec2 sizes) -{ - vec2 fracCoords = fract(coords * sizes + vec2(0.5)); - fracCoords = smoothstep(0.0, 1.0, fracCoords); - - vec2 mixx = mix(samples.ra, samples.gb, fracCoords.x); - float mixy = mix(mixx.y, mixx.x, fracCoords.y); - - //printf(fracCoords.xy); - #define THRESHOLD 0.2 - return smoothstep(THRESHOLD, 1.0 - THRESHOLD, mixy); -} - - -// These sampler functions are for smooth magnification via cubic blending, and are better than the gatherBlend approach, cause its way less samples -vec2 CubicSampler(vec2 uvsin, vec2 texdims){ - vec2 r = uvsin * texdims - 0.5; - vec2 tf = fract(r); - vec2 ti = r - tf; - tf = tf * tf * (3.0 - 2.0 * tf); - return (tf + ti + 0.5)/texdims; -} - -vec2 QuinticSampler(vec2 uvsin, vec2 texdims){ - vec2 r = uvsin * texdims - 0.5; - vec2 tf = fract(r); - vec2 ti = r - tf; - tf = tf * tf * tf * (tf * (6.0 * tf - 15.0) + 10.0); - return (tf + ti + 0.5)/texdims; -} - -vec2 OctalSampler(vec2 uvsin, vec2 texdims){ - vec2 r = uvsin * texdims - 0.5; - vec2 tf = fract(r); - vec2 ti = r - tf; - tf = tf * tf * (3.0 - 2.0 * tf); - tf = tf * tf * tf * (tf * (6.0 * tf - 15.0) + 10.0); - return (tf + ti + 0.5)/texdims; -} void main() { fragColor = vec4(0.0); - #if (EXACT == 0) - float los = getTexelF(tex0, texCoord.xy, vec2(LOSXSIZE,LOSYSIZE) * 2.); - float airlos = getTexelF(tex1, texCoord.xy, vec2(AIRLOSXSIZE,AIRLOSYSIZE) * 2.5); - vec2 radarJammer = getTexel(tex2, texCoord.xy, vec2(RADARXSIZE,RADARYSIZE) * 2.5).rg; - fragColor.r = 0.2 + 0.8 * los; // 0.4 - fragColor.g += 0.2 + 0.8 * airlos; - - fragColor.b = 0.2 + 0.8 * clamp(0.75 * radarJammer.r - 0.5 * (radarJammer.g - 0.5),0,1); - //gl_FragColor.b += radarJammer.r; - //gl_FragColor.b -= 2*radarJammer.g; - fragColor.a = outputAlpha; - #else - // textureGather returns in rgba order, TL, TR, BR, BL - /* - vec4 los_samples = textureGather(tex0, texCoord.xy, 0); - vec4 airlos_samples = textureGather(tex1, texCoord.xy, 0); - vec4 radar_samples = textureGather(tex2, texCoord.xy, 0); - vec4 jammer_samples = textureGather(tex2, texCoord.xy, 1); - - - float smooth_los = gatherBlend(los_samples, texCoord.xy, vec2(LOSXSIZE,LOSYSIZE)); - float smooth_airlos = gatherBlend(airlos_samples, texCoord.xy, vec2(AIRLOSXSIZE,AIRLOSYSIZE)); - float smooth_radar = gatherBlend(radar_samples, texCoord.xy, vec2(RADARXSIZE,RADARYSIZE)); - float smooth_jammer = gatherBlend(jammer_samples, texCoord.xy, vec2(RADARXSIZE,RADARYSIZE)); - */ - - float smooth_los = textureLod(tex0, QuinticSampler(texCoord.xy, vec2(LOSXSIZE, LOSYSIZE)), 0).r; - smooth_los = smoothstep(0.0, 1.0, smooth_los); - float smooth_airlos = textureLod(tex1, CubicSampler(texCoord.xy, vec2(AIRLOSXSIZE, AIRLOSYSIZE)), 0).r; - //smooth_los = smoothstep(0.0, 1.0, smooth_los); - vec2 smooth_radars = textureLod(tex2, CubicSampler(texCoord.xy, vec2(RADARXSIZE, RADARYSIZE)), 0).rg; - //smooth_radars = smoothstep(0.0, 1.0, smooth_radars); - //fragColor.rgb = fract(texCoord.xyz * 10.0); - //fragColor.rgb = vec3(smooth_los); - - fragColor.r = 0.2 + 0.8 * smooth_los; // 0.4 - fragColor.g += 0.2 + 0.8 * smooth_airlos; - fragColor.b = 0.2 + 0.8 * clamp(0.75 * smooth_radars.r - 0.5 * (smooth_radars.g - 0.5),0,1); - fragColor.a = outputAlpha; - return; - - #endif - //fragColor.rgb = fract(texCoord.xyz * 10.0); - //fragColor.a = 1.0; + + float los = getTexelF(tex0, texCoord, vec2(LOSXSIZE,LOSYSIZE) * 2.5); + float airlos = getTexelF(tex1, texCoord, vec2(AIRLOSXSIZE,AIRLOSYSIZE) * 2.5); + vec2 radarJammer = getTexel(tex2, texCoord, vec2(RADARXSIZE,RADARYSIZE) * 2.5).rg; + + fragColor.r = 0.2 + 0.8 * los; // 0.4 + fragColor.g += 0.2 + 0.8 * airlos; + fragColor.b = 0.2 + 0.8 * clamp(0.75 * radarJammer.r - 0.5 * (radarJammer.g - 0.5),0,1); + //gl_FragColor.b += radarJammer.r; + //gl_FragColor.b -= 2*radarJammer.g; + fragColor.a = outputAlpha; } \ No newline at end of file diff --git a/luaui/Widgets/Shaders/infolos.vert.glsl b/luaui/Widgets/Shaders/infolos.vert.glsl index befe79ec92a..91fb23675e7 100644 --- a/luaui/Widgets/Shaders/infolos.vert.glsl +++ b/luaui/Widgets/Shaders/infolos.vert.glsl @@ -1,16 +1,8 @@ -#version 430 +#version 130 -//__DEFINES__ -//__ENGINEUNIFORMBUFFERDEFS__ - -layout (location = 0) in vec4 position; // [-1,1], [0,1] , xyuv - -out DataVS { - vec4 texCoord; -}; - -void main(void) { - texCoord = position.zwzw; - gl_Position = vec4(position.xy * 1.0, 0.00, 1); +varying vec2 texCoord; +void main() { + texCoord = gl_MultiTexCoord0.st; + gl_Position = vec4(gl_Vertex.xyz, 1.0); } \ No newline at end of file diff --git a/luaui/Widgets/Shaders/infolos_view.frag.glsl b/luaui/Widgets/Shaders/infolos_view.frag.glsl deleted file mode 100644 index 56ad6a5cf16..00000000000 --- a/luaui/Widgets/Shaders/infolos_view.frag.glsl +++ /dev/null @@ -1,322 +0,0 @@ -#version 420 -#extension GL_ARB_uniform_buffer_object : require -#extension GL_ARB_shading_language_420pack: require - -uniform sampler2D mapDepths; -uniform sampler2D modelDepths; -uniform sampler2D screenCopyTex; -uniform sampler2D losTex; - -uniform vec4 blendfactors = vec4(1.0); - -//__DEFINES__ -//__ENGINEUNIFORMBUFFERDEFS__ - -in DataVS { - vec4 texCoord; -}; - -out vec4 fragColor; - - -vec4 Value3D_Deriv( vec3 P ) -{ - // https://github.com/BrianSharpe/Wombat/blob/master/Value3D_Deriv.glsl - - // establish our grid cell and unit position - vec3 Pi = floor(P); - vec3 Pf = P - Pi; - vec3 Pf_min1 = Pf - 1.0; - - // clamp the domain - Pi.xyz = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0; - vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 ); - - // calculate the hash - vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy; - Pt *= Pt; - Pt = Pt.xzxz * Pt.yyww; - vec2 hash_mod = vec2( 1.0 / ( 635.298681 + vec2( Pi.z, Pi_inc1.z ) * 48.500388 ) ); - vec4 hash_lowz = fract( Pt * hash_mod.xxxx ); - vec4 hash_highz = fract( Pt * hash_mod.yyyy ); - - // blend the results and return - vec3 blend = Pf * Pf * Pf * (Pf * (Pf * 6.0 - 15.0) + 10.0); - vec3 blendDeriv = Pf * Pf * (Pf * (Pf * 30.0 - 60.0) + 30.0); - vec4 res0 = mix( hash_lowz, hash_highz, blend.z ); - vec4 res1 = mix( res0.xyxz, res0.zwyw, blend.yyxx ); - vec4 res3 = mix( vec4( hash_lowz.xy, hash_highz.xy ), vec4( hash_lowz.zw, hash_highz.zw ), blend.y ); - vec2 res4 = mix( res3.xz, res3.yw, blend.x ); - return vec4( res1.x, 0.0, 0.0, 0.0 ) + ( vec4( res1.yyw, res4.y ) - vec4( res1.xxz, res4.x ) ) * vec4( blend.x, blendDeriv ); -} -vec3 hsv2rgb(vec3 c){ - vec4 K=vec4(1.,2./3.,1./3.,3.); - return c.z*mix(K.xxx,clamp(abs(fract(c.x+K.xyz)*6.-K.w)-K.x, 0, 1),c.y); -} - -vec3 rgb2hsv(vec3 c){ - vec4 K=vec4(0.,-1./3.,2./3.,-1.); - vec4 p=mix(vec4(c.bg ,K.wz),vec4(c.gb,K.xy ),step(c.b,c.g)); - vec4 q=mix(vec4(p.xyw,c.r ),vec4(c.r ,p.yzx),step(p.x,c.r)); - float d=q.x-min(q.w,q.y); - float e=1e-10; - return vec3(abs(q.z+(q.w-q.y)/(6.*d+e)),d/(q.x+e),q.x); -} -float filteredGrid( in vec2 p, in vec2 dpdx, in vec2 dpdy, float resolution) -{ - - vec2 w = max(abs(dpdx), abs(dpdy)); - vec2 a = p + 0.5*w; - vec2 b = p - 0.5*w; - vec2 i = (floor(a)+min(fract(a)*resolution,1.0)- - floor(b)-min(fract(b)*resolution,1.0))/(resolution*w); - return (1.0-i.x)*(1.0-i.y); -} - -// This function allows you to threshold a value at a fixed screen resolution -float filteredStep( in float p, in float resolution) -{ - resolution *= 1.1; - float dpdx = dFdx(p); - float dpdy = dFdy(p); - float dpddiag = dFdy(dpdx) ; - float w = max(max(abs(dpdx), abs(dpdy)), abs(dpddiag)); - float w1k = w * 1000.0; - - if (w < 1e-6) return 0.0; // dont divide by zero later on - float a = p + 0.5*w; - float b = p - 0.5*w; - float i = (floor(a)+min(fract(a)*resolution,10.1)- - floor(b)-min(fract(b)*resolution,10.1))/(resolution*w); - - return clamp(i-1, 0, 1); - -} - - /* --- About: - -- This API presents an easy -to-use smoothed LOS texture for other widgets to do their shading based on - -- It exploits truncation of values during blending to provide prevradar and prevlos values too! - -- The RED channel contains LOS level, where - -- 0.2-1.0 is LOS level - -- < 0.2 is _never_been_in_los! - -- the GREEN channel contains AIRLOS level - -- 0.2-1.0 is LOS level - -- < 0.2 is _never_been_in_los! - - -- the BLUE channel contains RADAR coverage - -- < 0.2 = never been in radar - -- fragColor.b = 0.2 + 0.8 * clamp(0.75 * radarJammer.r - 0.5 * (radarJammer.g - 0.5),0,1); - -- >0.2 = radar coverage - -- <0.5 = jammer - -- TODO: how do we know if an area is under radar coverage, but jammed? - -- It runs every gameFrame - - -// TODO LIST: -// Shade map edge extension via a clamped sampling of the edge so its pretty -// Pull back water surface stuff so that the water surface is the one thats being shaded -// Blend also the fact that underwater stuff needs alternate handling -// Add a nice static noise, that is slaved to screenUV and time maybe, instead of others? -// Experiment with scanline-type shading for terrible areas -// How should radar jammed areas be handled, if at all? -// We dont have any sonar info, thats pretty bad in the usability front. - -*/ - - -/* -// 4x4 bicubic filter using 4 bilinear texture lookups -// See GPU Gems 2: "Fast Third-Order Texture Filtering", Sigg & Hadwiger: -// http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter20.html - -// w0, w1, w2, and w3 are the four cubic B-spline basis functions -float w0(float a) -{ - return (1.0/6.0)*(a*(a*(-a + 3.0) - 3.0) + 1.0); -} - -float w1(float a) -{ - return (1.0/6.0)*(a*a*(3.0*a - 6.0) + 4.0); -} - -float w2(float a) -{ - return (1.0/6.0)*(a*(a*(-3.0*a + 3.0) + 3.0) + 1.0); -} - -float w3(float a) -{ - return (1.0/6.0)*(a*a*a); -} - -// g0 and g1 are the two amplitude functions -float g0(float a) -{ - return w0(a) + w1(a); -} - -float g1(float a) -{ - return w2(a) + w3(a); -} - -// h0 and h1 are the two offset functions -float h0(float a) -{ - return -1.0 + w1(a) / (w0(a) + w1(a)); -} - -float h1(float a) -{ - return 1.0 + w3(a) / (w2(a) + w3(a)); -} - -vec4 texture_bicubic(sampler2D tex, vec2 uv, vec4 texelSize) -{ - uv = uv*texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - - float g0x = g0(fuv.x); - float g1x = g1(fuv.x); - float h0x = h0(fuv.x); - float h1x = h1(fuv.x); - float h0y = h0(fuv.y); - float h1y = h1(fuv.y); - - vec2 p0 = (vec2(iuv.x + h0x, iuv.y + h0y) - 0.5) * texelSize.xy; - vec2 p1 = (vec2(iuv.x + h1x, iuv.y + h0y) - 0.5) * texelSize.xy; - vec2 p2 = (vec2(iuv.x + h0x, iuv.y + h1y) - 0.5) * texelSize.xy; - vec2 p3 = (vec2(iuv.x + h1x, iuv.y + h1y) - 0.5) * texelSize.xy; - - return g0(fuv.y) * (g0x * texture(tex, p0) + - g1x * texture(tex, p1)) + - g1(fuv.y) * (g0x * texture(tex, p2) + - g1x * texture(tex, p3)); -} - - -void mainImage( out vec4 fragColor, in vec2 fragCoord ) -{ - vec2 p = (fragCoord.xy - iMouse.xy) / iResolution.xy; - - vec2 uv = p*0.1; - - //--------------------------------------------- - // regular texture map filtering - //--------------------------------------------- - vec3 colA = texture( iChannel0, uv ).xyz; - - // bicubic - vec4 texelSize = vec4( 1.0 / iChannelResolution[0].xy, iChannelResolution[0].xy); - vec3 colB = texture_bicubic( iChannel0, uv, texelSize ).xyz; - - //--------------------------------------------- - // mix between the two colors - //--------------------------------------------- - vec3 col = mix( colA, colB, smoothstep( -0.3, 0.3, sin(1.0*p.x + 3.1416*iTime) ) ); - - fragColor = vec4( col, 1.0 ); -} -*/ - -float gradientStep(float x, float width){ - return smoothstep(0.0, 1.0, (0.5 - width * abs(x-0.5)) * 2.0); -} -void main(void) { - - vec4 screenColor = texture2D(screenCopyTex, texCoord.xy); - - float mapdepth = texture(mapDepths, texCoord.xy).x; - #if (PREUNIT == 0) - float modeldepth = texture(modelDepths, texCoord.xy).x; - float worlddepth = min(mapdepth, modeldepth); - // We might need to use information that we are processing a model fragment and need to shade differently - float ismodel = (modeldepth < mapdepth? 1.0: 0.0) ; - #else - float worlddepth = mapdepth; - // We might need to use information that we are processing a model fragment and need to shade differently - float ismodel = 0.0 ; - #endif - vec4 fragWorldPos = vec4( vec3(texCoord.xy * 2.0 - 1.0, worlddepth), 1.0); - - // reconstruct view pos: - fragWorldPos = cameraViewProjInv * fragWorldPos; - fragWorldPos.xyz = fragWorldPos.xyz / fragWorldPos.w; // YAAAY this works! - - vec3 waterSurfacePos = vec3(0,0,0); - - //clamp fragWorldPos to the infolos tex bounds: - vec2 infolosUV = clamp(fragWorldPos.xz / mapSize.xy, 0, 1); - vec4 infolosSample = texture2D(losTex, infolosUV); - - //printf(infolosSample.xyzw); - - // Known constants: - vec3 current_losairradar = smoothstep(0.227, 0.973, infolosSample.rgb); - vec3 hasbeen_losairradar = step(0.2, infolosSample.rgb); - //printf(current_losairradar.rgb); - //printf(hasbeen_losairradar.rgb); - float isjammed = (infolosSample.b < 0.5 ? 1.0 : 0.0); - - - // Find the HSV value of the screen color - vec3 screenHSV = rgb2hsv(screenColor.rgb); - //printf(screenHSV.rgb); - // Darken unsaturated areas - // Everything from now on will be done via mix! - - - screenHSV = mix( screenHSV * vec3(1,0.5,1), screenHSV, current_losairradar.g); - screenHSV = mix( screenHSV * vec3(1,0,1), screenHSV, current_losairradar.r); - - float unsaturation = 1.0 - screenHSV.y; - //screenHSV.z *= (screenHSV.y ) * (1.0 - current_losairradar.r); - //screenHSV.y = screenHSV.y * current_losairradar.r; - - screenColor.rgb = hsv2rgb(screenHSV); - - // Darken by airlosvalue: - - //screenColor.rgb *= airlosvalue; - - // Add noise by lack of radar: - - #if 0 - vec4 radarNoise = Value3D_Deriv(fragWorldPos.xyz * 0.125 + vec3(0,timeInfo.x * 0.1,0)); - screenColor.rgb = mix(screenColor.rgb, radarNoise.rgb, (1.0 - current_losairradar.b) * 0.1); - #endif - // Scanlines? - - vec3 scanlineColor = screenColor.rgb * 0.75; - screenColor.rgb = mix(screenColor.rgb, scanlineColor, (1.0 - current_losairradar.b) *step(0.5, fract(gl_FragCoord.y/4.0))); - - - // Gradient step - #if 0 - screenColor.rgb *= (1.0 - 0.3 * gradientStep(current_losairradar.b, 3.4)); - #endif - - // fixed-width gradient step: - #if 1 - float timeCorrection = timeInfo.w; - if (timeCorrection < 0.0) timeCorrection = 0; - if (timeCorrection > 1.0) timeCorrection = 0; - float losEdge = filteredStep(current_losairradar.b - 0.5 - (timeCorrection * 0.00), 0.5); - screenColor.g += 0.2 * losEdge; - #endif - - - fragColor.rgb = screenColor.rgb; - #if 1 // GRID DEBUGGING - vec2 gridpos = (fragWorldPos.xz + vec2(0.5)) /64.0 ; - float grid = 1.0 - filteredGrid( gridpos.xy, dFdx(gridpos.xy), dFdy(gridpos.xy) , 64.0); - gridpos = (fragWorldPos.xz + vec2(0.5) ) /8.0; - grid += filteredGrid( gridpos.xy, dFdx(gridpos.xy), dFdy(gridpos.xy) , 64.0); - fragColor.rgb += 0.2 * (1.0 - grid); - #endif - fragColor.a = 1.0; - //fragColor.rgba = vec4(infolosSample.rrr, 1.0); -} \ No newline at end of file diff --git a/luaui/Widgets/Shaders/infolos_view.vert.glsl b/luaui/Widgets/Shaders/infolos_view.vert.glsl deleted file mode 100644 index befe79ec92a..00000000000 --- a/luaui/Widgets/Shaders/infolos_view.vert.glsl +++ /dev/null @@ -1,16 +0,0 @@ -#version 430 - -//__DEFINES__ - -//__ENGINEUNIFORMBUFFERDEFS__ - -layout (location = 0) in vec4 position; // [-1,1], [0,1] , xyuv - -out DataVS { - vec4 texCoord; -}; - -void main(void) { - texCoord = position.zwzw; - gl_Position = vec4(position.xy * 1.0, 0.00, 1); -} \ No newline at end of file diff --git a/luaui/Widgets/Shaders/map_startcone_gl4.frag.glsl b/luaui/Widgets/Shaders/map_startcone_gl4.frag.glsl new file mode 100644 index 00000000000..66d48f533a0 --- /dev/null +++ b/luaui/Widgets/Shaders/map_startcone_gl4.frag.glsl @@ -0,0 +1,26 @@ +#version 420 +// This shader is (c) Beherith (mysterme@gmail.com), licensed under the MIT license + +#extension GL_ARB_uniform_buffer_object : require +#extension GL_ARB_shading_language_420pack: require + +#line 20000 + +//__ENGINEUNIFORMBUFFERDEFS__ + +//__DEFINES__ + + +uniform float isMinimap = 0; + +in DataVS { + vec4 v_worldposrad; + vec4 v_teamcolor; +}; + +out vec4 fragColor; + +void main() { + fragColor.rgba = v_teamcolor; + //fragColor.rgba= vec4(1.0, 0.0, 0.0, 1.0); +} \ No newline at end of file diff --git a/luaui/Widgets/Shaders/map_startcone_gl4.vert.glsl b/luaui/Widgets/Shaders/map_startcone_gl4.vert.glsl new file mode 100644 index 00000000000..b9b0c56c26c --- /dev/null +++ b/luaui/Widgets/Shaders/map_startcone_gl4.vert.glsl @@ -0,0 +1,51 @@ +//map_startcone_gl4.vert.glsl + +#version 420 +#extension GL_ARB_uniform_buffer_object : require +#extension GL_ARB_shader_storage_buffer_object : require +#extension GL_ARB_shading_language_420pack: require +// This shader is (c) Beherith (mysterme@gmail.com), licensed under the MIT license + +#line 5000 +layout (location = 0) in vec4 position; // xyz and etc garbage +//layout locations 1 and 2 contain primitive specific garbage and should not be used +layout (location = 3) in vec4 worldposrad; // l w rot and maxalpha +layout (location = 4) in vec4 teamcolor; + +//__ENGINEUNIFORMBUFFERDEFS__ +//__DEFINES__ + +#line 10000 + +uniform float isMinimap = 0; +uniform int flipMiniMap = 0; + +out DataVS { + vec4 v_worldposrad; + vec4 v_teamcolor; +}; + + +#line 11000 +void main() +{ + v_teamcolor = teamcolor; + vec4 worldPos = vec4(position.xyz, 1.0); + + if (isMinimap < 0.5) { // world + worldPos.xyz = worldPos.xyz + worldposrad.xyz; + v_worldposrad = vec4(worldPos.xyz, worldposrad.w); + gl_Position = cameraViewProj * worldPos; + }else{ + //vec2 ndcxy = normalize(position.xz);// * 100/256.0; + //if (length(position.xz) < 1e3) { ndcxy = vec2(0);} + vec2 ndcxy = position.xz * 0.0005; + ndcxy = (worldposrad.xz / mapSize.xy + ndcxy) * 2.0 - 1.0; + if (flipMiniMap < 1) { + ndcxy.y *= -1; + }else{ + ndcxy.x *= -1; + } + gl_Position = vec4(ndcxy, 0.0, 1.0); + } +} \ No newline at end of file diff --git a/luaui/Widgets/Shaders/screen_distortion_combine_gl4.frag.glsl b/luaui/Widgets/Shaders/screen_distortion_combine_gl4.frag.glsl deleted file mode 100644 index 1bd9b4e3ffa..00000000000 --- a/luaui/Widgets/Shaders/screen_distortion_combine_gl4.frag.glsl +++ /dev/null @@ -1,107 +0,0 @@ -#version 150 compatibility - -uniform sampler2D mapDepths; -uniform sampler2D modelDepths; -uniform sampler2D screenCopyTexture; -uniform sampler2D distortionTexture; -uniform float distortionOverallStrength = 1.0; -uniform vec2 inverseScreenResolution = vec2(1.0/1920.0, 1.0/1080.0); - -vec3 colormap_jet(float x){ - vec3 color = vec3(0.0); - vec3 black = vec3(0.0); - vec3 red = vec3(1.0, 0.0, 0.0); - vec3 yellow = vec3(1.0, 1.0, 0.0); - vec3 white = vec3(1.0); - vec3 Blue = vec3(0.0, 0.0, 1.0); - if (x < 0.125) { - color = black + (red - black) * (x - 0.0) / (0.125 - 0.0); - } else if (x < 0.375) { - color = red + (yellow - red) * (x - 0.125) / (0.375 - 0.125); - } else if (x < 0.625) { - color = yellow + (white - yellow) * (x - 0.375) / (0.625 - 0.375); - } else if (x < 0.875) { - color = white + (Blue - white) * (x - 0.625) / (0.875 - 0.625); - } else { - color = mix(Blue, black, 0.1* clamp((x - 0.875) / (1.0 - 0.875),0,1)); - } - return color; -} - - -vec2 softClampScreen(vec2 UV){ - return clamp(UV, 0.5 * inverseScreenResolution, 1.0 - 0.5 * inverseScreenResolution); -} -#define DEBUG(x) vec4( fract(x*0.999 + 0.0001), sqrt(floor(x) / 256.0),(x < 0? 1 : 0),1.0); -//__DEFINES__ -void main(void) { - - // As of yet, distortion coords are still stored as centered around 0.5, so we need to shift them to 0.0 - vec4 distortion = texture2D(distortionTexture, gl_TexCoord[0].st); - distortion.rgb = distortion.rgb; - distortion.rg = (1536.0 * distortion.rg) * inverseScreenResolution; - if (length(distortion.rg) < 0.001) { - // Bail early if no real distortion is present - gl_FragColor = vec4(0.0); - - } - // Declare the UV sets and final screen color - vec2 offsetUV1; - vec2 offsetUV2; - vec2 offsetUV3; - vec4 outputRGBA = vec4(0.0); - - - // Regular distortion - if (distortion.b > -1.0 ) { - vec2 distortionXY = distortion.rg * distortionOverallStrength * 0.01; - offsetUV1 = softClampScreen(gl_TexCoord[0].st + distortionXY); - offsetUV2 = softClampScreen(gl_TexCoord[0].st + distortionXY / CHROMATIC_ABERRATION); - offsetUV3 = softClampScreen(gl_TexCoord[0].st + distortionXY * CHROMATIC_ABERRATION); - }else{ - // Motion blur - vec2 blurdirection = distortion.rg * 0.8; - offsetUV1 = softClampScreen(gl_TexCoord[0].st - 2 * inverseScreenResolution * blurdirection); - offsetUV2 = softClampScreen(gl_TexCoord[0].st + 2 * inverseScreenResolution * blurdirection); - offsetUV3 = softClampScreen(gl_TexCoord[0].st + 4 * inverseScreenResolution * blurdirection); - } - - - vec3 sample1 = texture2D(screenCopyTexture, offsetUV1).rgb; - vec3 sample2 = texture2D(screenCopyTexture, offsetUV2).rgb; - vec3 sample3 = texture2D(screenCopyTexture, offsetUV3).rgb; - - - if (distortion.b > -1.0 ) { // Regular distortion - outputRGBA.g = sample1.g; - outputRGBA.r = sample2.r; - outputRGBA.b = sample3.b; - outputRGBA.a = 1.0; - }else{ // Motion Blur - outputRGBA.rgb = (sample1.rgb + sample2.rgb + sample3.rgb) / 3.0; - outputRGBA.a = 0.7; - //outputRGBA = vec4( sample1, 1.0); - - } - - #if (DEBUGCOMBINER == 0) - gl_FragColor = outputRGBA; - - #else - if (gl_TexCoord[0].x > 0.66){ // right half? - if (gl_TexCoord[0].y > 0.75){ // top right - if (distortion.b < -0.01 ) - gl_FragColor = vec4(vec3(distortion.rg, 0.0) * 0.5 + 0.5, 0.7); - else gl_FragColor = vec4(outputRGBA.rgb, 0.0); - }else{ // bottom right just straight up debug out the actual distortion RGB texture - //gl_FragColor = vec4(distortion.rg * 0.5 + 0.5, -1 * distortion.b, 1.0); - float distmag = length(distortion.rg/ (1536.0 * inverseScreenResolution)); - gl_FragColor = vec4(colormap_jet(distmag * 0.5), step(0.00001,distortion.a)); - } - }else{ // left half - gl_FragColor = outputRGBA; - } - #endif - - -} \ No newline at end of file diff --git a/luaui/Widgets/Shaders/screen_distortion_combine_gl4.vert.glsl b/luaui/Widgets/Shaders/screen_distortion_combine_gl4.vert.glsl deleted file mode 100644 index 4cf7ddc0a58..00000000000 --- a/luaui/Widgets/Shaders/screen_distortion_combine_gl4.vert.glsl +++ /dev/null @@ -1,8 +0,0 @@ -#version 150 compatibility - -//__DEFINES__ - -void main(void) { - gl_TexCoord[0] = vec4(gl_Vertex.zwzw); - gl_Position = vec4(gl_Vertex.xy * 1.0, 0.00, 1); -} \ No newline at end of file diff --git a/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_line.lua b/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_line.lua index aa81b408f3a..ec5811014f8 100644 --- a/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_line.lua +++ b/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_line.lua @@ -1,7 +1,7 @@ local widgetName = "Blueprint" function skip() - return Spring.GetGameFrame() <= 0 + return not Platform.gl end function setup() diff --git a/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_single.lua b/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_single.lua index 2ccf36190b6..5b83ace3dbb 100644 --- a/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_single.lua +++ b/luaui/Widgets/Tests/cmd_blueprint/test_cmd_blueprint_single.lua @@ -1,7 +1,7 @@ local widgetName = "Blueprint" function skip() - return Spring.GetGameFrame() <= 0 + return not Platform.gl end function setup() diff --git a/luaui/Widgets/Tests/critters/test_critters.lua b/luaui/Widgets/Tests/critters/test_critters.lua new file mode 100644 index 00000000000..b4067e3bb1a --- /dev/null +++ b/luaui/Widgets/Tests/critters/test_critters.lua @@ -0,0 +1,125 @@ +function setup() + Test.clearMap() + + Test.levelHeightMap() + + Spring.SendCommands("globallos") + Spring.SendCommands("setspeed 5") +end + +function cleanup() + Spring.SendCommands("globallos") + Spring.SendCommands("setspeed 1") + + Test.clearMap() +end + +function runCritterTest() + local WAIT_FRAMES = 204 -- enough to trigger critter cleanup/restoring by gaia_critters + local unitName = 'armpw' + local critterName = 'critter_crab' + local isCritter = {} + for udefID, def in ipairs(UnitDefs) do + if string.find(def.name, "critter_") then + isCritter[udefID] = true + end + end + + local midX, midZ = Game.mapSizeX / 2, Game.mapSizeZ / 2 + + local function countAliveCritters() + local allUnits = Spring.GetAllUnits() + local alive = 0 + for _, unitID in pairs(allUnits) do + local defID = Spring.GetUnitDefID(unitID) + if isCritter[defID] then + alive = alive + 1 + end + end + return alive + end + + local function destroyNonCritters() + local unitDefID = UnitDefNames[unitName].id + SyncedRun(function(locals) + local unitDefID = locals.unitDefID + local allUnits = Spring.GetAllUnits() + for _, unitID in pairs(allUnits) do + local defID = Spring.GetUnitDefID(unitID) + if defID == unitDefID then + Spring.DestroyUnit(unitID, false, true, nil, true) + end + end + end, 500) + end + + -- 1. Create critters + + SyncedRun(function(locals) + local GaiaTeamID = Spring.GetGaiaTeamID() + local critterName = locals.critterName + local function createUnit(def, x, z, teamID) + local x = locals.midX + x + local z = locals.midZ + z + local y = Spring.GetGroundHeight(x, z) + 40 + local unitID = Spring.CreateUnit(def, x, y, z, "south", teamID) + end + for i=0, 5 do + for j=0, 5 do + createUnit(critterName, 850+i*50, 100+j*50, GaiaTeamID) + end + end + end, 400) + + assertSuccessBefore(5, 5, function() + return #Spring.GetAllUnits() == 36 + end) + + assert(countAliveCritters() == 36) + + + -- 2. Create lots of units so critters will be cleaned up + + SyncedRun(function(locals) + local GaiaTeamID = Spring.GetGaiaTeamID() + local midX, midZ = locals.midX, locals.midZ + local y = Spring.GetGroundHeight(-2000, -1500) + 40 + local spCreateUnit = Spring.CreateUnit + local unitName = locals.unitName + local function createUnit(def, x, z, teamID) + local x = midX + x + local z = midZ + z + spCreateUnit(def, x, y, z, "south", teamID) + end + for i=1, 60 do + for j=1, 60 do + createUnit(unitName, -2000+i*50, -1500+j*50, 0) + end + end + end, 500) + + assertSuccessBefore(15, 10, function() + return Spring.GetTeamUnitCount(0) == 3600 + end) + + Test.waitFrames(WAIT_FRAMES - (Spring.GetGameFrame() % WAIT_FRAMES)) + + assert(countAliveCritters() < 36) + + + -- 3. Destroy non critters so critters will be restored + + destroyNonCritters() + + assertSuccessBefore(15, 5, function() + return Spring.GetTeamUnitCount(0) == 0 + end) + + Test.waitFrames(WAIT_FRAMES - (Spring.GetGameFrame() % WAIT_FRAMES)) + + assert(countAliveCritters() == 36) +end + +function test() + runCritterTest() +end diff --git a/luaui/Widgets/Tests/select_api/compare_to_spring.lua b/luaui/Widgets/Tests/select_api/compare_to_spring.lua new file mode 100644 index 00000000000..76b3d135f7c --- /dev/null +++ b/luaui/Widgets/Tests/select_api/compare_to_spring.lua @@ -0,0 +1,351 @@ +-- run test using BAR command (in chat): `/runtests select_api` +local spGetUnitDefID = Spring.GetUnitDefID +local selectApi = VFS.Include("luaui/Widgets/Include/select_api.lua") +local nameLookup = {} +local passed = true + + +function skip() + return Spring.GetGameFrame() <= 0 +end + +function setup() + Test.clearMap() +end + +function cleanup() + Spring.SendCommands("setspeed " .. 1) +end + +local function printTable(tbl, indent) + if type(tbl) ~= "table" then + print(tbl, type(tbl)) + return + end + + indent = indent or 0 + for key, value in pairs(tbl) do + local formatting = string.rep(" ", indent) .. key .. ": " + if type(value) == "table" then + print(formatting) + printTable(value, indent + 1) + else + print(formatting .. tostring(value)) + end + end +end + +local function getName(uid) + local udefid = spGetUnitDefID(uid) + + if not udefid then + return nil + end + + local udef = UnitDefs[udefid] + return udef.name, udefid +end + +local function compareUnitSets(springUnitSet, apiUnitSet, filter) + local missingInApi = {} + local missingInSpring = {} + + for uid in pairs(springUnitSet) do + if not apiUnitSet[uid] then + local name = getName(uid) + + -- sometimes the uid wasn't added in the first place + -- this is why 'cortl' and 'armtl' cause issues + if name ~= nil and name ~= "armtl" then + print(name) + table.insert(missingInApi, uid) + end + end + end + + for uid in pairs(apiUnitSet) do + if not springUnitSet[uid] then + local name = getName(uid) + + -- these have weird behaviour for the "Not_Builder" filter + -- they behave as expected for the "Builder" filter + local isWeirdOutlier = (filter == "Not_Builder" and ( + name == "cormlv" or + name == "armmlv" + )) + -- api command selects these, but spring select doesn't + -- I think they spawn? don't seem to exist during build script + or name == "armdrone" or name == "corvacct" + or name == "armtl" + + if not isWeirdOutlier then + table.insert(missingInSpring, uid) + end + end + end + + return missingInApi, missingInSpring +end + +local function createAndAddUnit(udefid, name, x, z, uids, group) + if name == 'dbg_sphere' or name == 'dbg_sphere_fullmetal' or name == 'pbr_cube' + or name == 'lootboxplatinum' + then -- weird buggy units + return + end + + local unitID = SyncedRun(function(locals) + local udefid = locals.udefid + local x = locals.x + local z = locals.z + local group = locals.group + + local y = Spring.GetGroundHeight(x, z) + local unitID = Spring.CreateUnit(udefid, x, y, z, "east", 0) + + + if group == 1 then + Spring.SetUnitGroup(unitID, 1) + end + return unitID + end) + + table.insert(uids, unitID) + return unitID +end + +local function generateErrorMessage(missingList, listName) + local names = {} + for _, uid in pairs(missingList) do + local name, udefid = getName(uid) + if name then + table.insert(names, name .. "|" .. udefid) + end + end + return listName .. " contains " .. #missingList .. " elements: " .. table.concat(names, ", ") +end + +local function createUnits() + -- setup filters and units + local offset = 200 + local x = offset + local z = offset + local uids = {} + local group = 1 + + local count = 0 + local max_count = 1000 + -- local max_count = 100 + -- local max_count = 10 + + for udefid, udef in pairs(UnitDefs) do + if count >= max_count then + break + end + count = count + 1 + + x = x + offset + local unitId = createAndAddUnit(udefid, udef.name, x, z, uids, group) + + if unitId then + nameLookup[unitId] = udef.name + end + + group = -1 + + if x > 5000 then + x = offset + z = z + offset + group = 1 + end + end + + print(count .. " total unit count") + + return uids +end + +local comparableConclusions = { + ["ClearSelection_SelectAll+"] = true, + ["SelectAll+"] = true, + ["ClearSelection_SelectClosestToCursor+"] = true, + ["SelectClosestToCursor+"] = true +} + +local function test_command(preSelectedUnitIDs, filter, command, conclusion) + local springCommand = "select " .. command + + -- api command + local apiCommand = selectApi.getCommand(command) + local apiCommandUnitSet = {} + Spring.SelectUnitArray(preSelectedUnitIDs) + apiCommand() + local apiUnits = Spring.GetSelectedUnits() + for _, uid in pairs(apiUnits) do + apiCommandUnitSet[uid] = true + end + + -- spring + local springUnitSet = {} + Spring.SelectUnitArray(preSelectedUnitIDs) + Spring.SendCommands(springCommand) + local springUnits = Spring.GetSelectedUnits() + for _, uid in pairs(springUnits) do + springUnitSet[uid] = true + end + + -- compare + local function compare(apiUnitSet, type) + local missingInApi, missingInSpring = compareUnitSets(springUnitSet, apiUnitSet, filter) + local hasMissingInApi = #missingInApi > 0 + local hasMissingInSpring = #missingInSpring > 0 + local prefix = "\n" .. type .. " " .. command .. " failed: " + + if hasMissingInApi and hasMissingInSpring then + local errorMessage = generateErrorMessage(missingInApi, "missingInApi") .. + " | " .. generateErrorMessage(missingInSpring, "missingInSpring") + print(prefix .. errorMessage) + passed = false + elseif hasMissingInApi then + local errorMessage = generateErrorMessage(missingInApi, "missingInApi") + print(prefix .. errorMessage) + passed = false + elseif hasMissingInSpring then + local errorMessage = generateErrorMessage(missingInSpring, "missingInSpring") + print(prefix .. errorMessage) + passed = false + end + end + + if comparableConclusions[conclusion] then + compare(apiCommandUnitSet, "Command") + elseif #springUnits ~= #apiUnits then + -- Spring and API handle rounding 0.5 differently + -- other things seem to cause off-by-one errors as well. + if math.abs(#springUnits - #apiUnits) > 2 then + print("Count doesn't match for " .. command .. " Spring: " .. #springUnits .. " API: " .. #apiUnits) + passed = false + end + end +end + +-- 2024/08/17 +-- 543 total units are created +-- for each filter, the sum of {{filter}} and Not_{{filter}} always equals 537. +-- this means 6 units are being created but then not included in the tests +-- could be 'dbg_sphere' 'dbg_sphere_fullmetal' 'pbr_cube' +function test() + passed = true + local uids = createUnits() + local halfSize = math.floor(#uids / 2) + local preSelectedUnitIDs = {} + + for i = 1, halfSize do + local unitID = uids[i] + table.insert(preSelectedUnitIDs, unitID) + end + + local simpleFilterDefs = { + "AbsoluteHealth_100", + "Not_AbsoluteHealth_100", + "Aircraft", + "Not_Aircraft", + "Builder", + "Not_Builder", + "Buildoptions", + "Not_Buildoptions", + "Building", + "Not_Building", + "Cloak", + "Not_Cloak", + "Cloaked", + "Not_Cloaked", + "Guarding", + "Not_Guarding", + "Patrolling", + "Not_Patrolling", + "IdMatches_armflea_IdMatches_armpw", + "Not_IdMatches_armcom_Not_IdMatches_armflea", + "Idle", + "Not_Idle", + "InGroup_1", + "Not_InGroup_1", + "InHotkeyGroup", + "Not_InHotkeyGroup", + "InPrevSel", + "Not_InPrevSel", + "Jammer", + "Not_Jammer", + "ManualFireUnit", + "Not_ManualFireUnit", + "Radar", + "Not_Radar", + "Resurrect", + "Not_Resurrect", + "RelativeHealth_50", + "Not_RelativeHealth_50", + "Stealth", + "Not_Stealth", + "Transport", + "Not_Transport", + "Waiting", + "Not_Waiting", + "WeaponRange_200", + "Not_WeaponRange_200", + "Weapons", + "Not_Weapons", + } + + local notImplementedApi = { + "RulesParamEquals__" + } + + local notImplementedSpring = { + "AntiAir", + "NotAntiAir", + } + + local notWorkingSpring = { + "NameContain_com", + "Not_NameContain_com", + "Category_noweapon", + "Not_Category_noweapon", + "Category_NOWEAPON", + "Not_Category_NOWEAPON", + } + + local sources = { + "AllMap", + "Visible", + "PrevSelection", + "FromMouse_500", + "FromMouseC_500" + } + + local conclusions = { + "ClearSelection_SelectAll+", + "SelectAll+", + "ClearSelection_SelectClosestToCursor+", + "SelectClosestToCursor+", + + -- these give different results, need to compare the count + "ClearSelection_SelectOne+", + "ClearSelection_SelectNum_5+", + "ClearSelection_SelectPart_50+", + + -- these have odd behavior in Spring, don't test. + -- "SelectOne+", + -- "SelectNum_5+", + -- "SelectPart_50+" + } + + for _, filter in pairs(simpleFilterDefs) do + for _, source in pairs(sources) do + for _, conclusion in pairs(conclusions) do + local command = source .. "+_" .. filter .. "+_" .. conclusion + test_command(preSelectedUnitIDs, filter, command, conclusion) + end + end + end + assert(passed, "read errors above") +end diff --git a/luaui/Widgets/Tests/weapondefs/test_flighttime.lua b/luaui/Widgets/Tests/weapondefs/test_flighttime.lua new file mode 100644 index 00000000000..4eeef93aa77 --- /dev/null +++ b/luaui/Widgets/Tests/weapondefs/test_flighttime.lua @@ -0,0 +1,90 @@ +function setup() + Test.clearMap() + + Spring.SendCommands("editdefs 1") + Spring.SendCommands("globallos") + Spring.SendCommands("setspeed 5") +end + +function cleanup() + Test.clearMap() + + Spring.SendCommands("globallos") + Spring.SendCommands("setspeed 1") + Spring.SendCommands("editdefs 0") +end + +function runDistanceTest(flightTime, shouldAlive) + SyncedRun(function(locals) + local flightTime = locals.flightTime + for weaponDefID, weaponDef in pairs(WeaponDefs) do + if weaponDef.name == "corbuzz_rflrpc" then + weaponDef.flightTime = flightTime + weaponDef.accuracy = 0 + end + if weaponDef.name == "armrock_arm_bot_rocket" or weaponDef.name == "corstorm_cor_bot_rocket" then + weaponDef.flightTime = flightTime + end + end + end) + + local units, unitNames = SyncedRun(function(locals) + local midX, midZ = Game.mapSizeX / 2, Game.mapSizeZ / 2 + local units = {} + local unitNames = {} + local function createUnit(def, x, z, teamID) + local x = midX + x + local z = midZ + z + local y = Spring.GetGroundHeight(x, z) + local unitID = Spring.CreateUnit(def, x, y, z, "south", teamID) + units[#units+1] = unitID + unitNames[def] = unitID + return unitID + end + + createUnit("armafus", 100, -500, 0) + createUnit("armafus", 200, -500, 0) + createUnit("armafus", 300, -500, 0) + createUnit("armafus", 400, -500, 0) + createUnit("armtarg", 500, -500, 0) + createUnit("armtarg", 600, -500, 0) + createUnit("armtarg", 700, -500, 0) + createUnit("corbuzz", 500, 0, 0) + + Spring.GiveOrderToUnitArray(units, CMD.FIRE_STATE, {0}, 0) + + createUnit("armarad", 900, 50, 0) + for i=0, 5 do + createUnit("armrock", 850 + i*50, 100, 0) + end + createUnit("corstorm", 1150, 100, 0) + Spring.GiveOrderToUnitArray(units, CMD.MOVE_STATE, {0}, 0) + + createUnit("armarad", 400, Game.mapSizeZ/2.0-1200, 0) + -- enemies + createUnit("armpw", 1000, 550, 1) + createUnit("armsolar", 0, Game.mapSizeZ/2.0-1200, 1) + + return units, unitNames + end) + + Test.waitFrames(1) + + Spring.GiveOrderToUnit(unitNames["corbuzz"], CMD.ATTACK, {unitNames["armsolar"]}, 0) + Spring.GiveOrderToUnit(unitNames["corstorm"], CMD.ATTACK, {unitNames["armpw"]}, 0) + Spring.GiveOrderToUnit(unitNames["armrock"], CMD.ATTACK, {unitNames["armpw"]}, 0) + + Test.waitFrames(300) + + local isAlive = Spring.ValidUnitID(unitNames["armsolar"]) + local isAlive2 = Spring.ValidUnitID(unitNames["armpw"]) + + assert(isAlive == shouldAlive) + assert(isAlive2 == shouldAlive) +end + +function test() + runDistanceTest(30, true) + Test.clearMap() + runDistanceTest(0, false) +end diff --git a/luaui/Widgets/api_blueprint.lua b/luaui/Widgets/api_blueprint.lua index 0b6dd3969ba..ba9366dcc53 100644 --- a/luaui/Widgets/api_blueprint.lua +++ b/luaui/Widgets/api_blueprint.lua @@ -527,7 +527,9 @@ local BUILD_MODES_HANDLERS = { local instanceIDs = {} local function clearInstances() - clearInstanceTable(outlineInstanceVBO) + if outlineInstanceVBO then + clearInstanceTable(outlineInstanceVBO) + end if WG.StopDrawUnitShapeGL4 then WG.StopDrawAll(widget:GetInfo().name) diff --git a/luaui/Widgets/api_los_combiner_gl4.lua b/luaui/Widgets/api_los_combiner_gl4.lua deleted file mode 100644 index 3b972980bf5..00000000000 --- a/luaui/Widgets/api_los_combiner_gl4.lua +++ /dev/null @@ -1,259 +0,0 @@ - --------------------------------------------------------------------------------- -function widget:GetInfo() - return { - name = "API LOS Combiner GL4", - version = 3, - desc = "Draws the info texture needed for many shaders", - author = "Beherith", - date = "2022.12.12", - license = "Lua code is GPL V2, GLSL is (c) Beherith", - layer = -10000, -- lol this isnt even a number - enabled = false -- disabled by default, its crazy! - } -end - --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- --- About: - -- This api provides the coarse, but merged LOS textures. - -- It is recommended to use the CubicSampler(vec2 uvsin, vec2 texdims); sampler when sampling this texture! - - -- It exploits truncation of values during blending to provide prevradar and prevlos values too! - -- The RED channel contains LOS level, where - -- 0.2-1.0 is LOS level - -- < 0.2 is _never_been_in_los! - -- the GREEN channel contains AIRLOS level - -- 0.2-1.0 is LOS level - -- < 0.2 is _never_been_in_los! - - -- the BLUE channel contains RADAR coverage - -- < 0.2 = never been in radar - -- fragColor.b = 0.2 + 0.8 * clamp(0.75 * radarJammer.r - 0.5 * (radarJammer.g - 0.5),0,1); - -- >0.2 = radar coverage - -- <0.5 = jammer - -- It runs every gameFrame - - - --- TODO: 2022.12.12 - -- [x] make it work? - -- [x] make api share? - -- [x] a clever thing might be to have 1 texture per allyteam? - -- some bugginess with jammer range? - -- - --- TODO 2022.12.20 - -- Read miplevels from modrules? - --- TODO 2024.11.19 - -- [ ] Make the shader update at updaterate for true smoothness. - -- [ ] When does the LOS texture actually get updated though? - -- [ ] Would need to double-buffer the texture, and perform a swap every (15) gameframes - -- [ ] API must then expose the new and the old texture, and the progress factor between them. - -- [ ] The default 30hz smootheness is far from enough - -- [ ] The delayed approach is fucking stupid. - -- [ ] The mip level should be the 'smallest' mip level possible, and save a fused texture - -- [ ] Note that we must retain the 'never been seen'/ 'never been in radar' functionality - -- [ ] Are we sure that is the best - -- [ ] handle drawing onto the minimap? - - -local autoreload = true - - -local miplevels = {2^3, 2^4, 2^3, 1} -- los, airlos and radar mip levels - -local shaderConfig = { - TEXX = (Game.mapSizeX/(8 * miplevels[1])), - TEXY = (Game.mapSizeZ/(8 * miplevels[1])), -} ---------------------------------------------------------------------------- - -local outputAlpha = 0.07 -local numFastUpdates = 10 -- how many quick updates to do on large-scale changes -local updateRate = 2 -- on each Nth frame -local updateInfoLOSTexture = 0 -- how many updates to do on next draw -local delay = 1 - -local infoShader -local infoTextures = {} -- A table of allyteam/texture mappings -local currentAllyTeam = nil - -local texX, texY -local luaShaderDir = "LuaUI/Widgets/Include/" -local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") -VFS.Include(luaShaderDir.."instancevbotable.lua") - -local fullScreenQuadVAO = nil - -local vsSrcPath = "LuaUI/Widgets/Shaders/api_los_combiner.vert.glsl" -local fsSrcPath = "LuaUI/Widgets/Shaders/api_los_combiner.frag.glsl" - - -local shaderSourceCache = { - vssrcpath = vsSrcPath, - fssrcpath = fsSrcPath, - uniformFloat = { - outputAlpha = outputAlpha, - time = 1.0, - }, - uniformInt = { - tex0 = 0, - tex1 = 1, - tex2 = 2, - }, - textures = { - [0] = "$info:los", - [1] = "$info:airlos", - [2] = "$info:radar", - }, - shaderName = "LOS Combiner GL4", - shaderConfig = shaderConfig -} - - -local function GetInfoLOSTexture(allyTeam) - return infoTextures[allyTeam or currentAllyTeam] -end - -local function CreateLosTexture() - return gl.CreateTexture(shaderConfig.TEXX, shaderConfig.TEXY, { - min_filter = GL.LINEAR, - mag_filter = GL.LINEAR, - wrap_s = GL.CLAMP_TO_EDGE, - wrap_t = GL.CLAMP_TO_EDGE, - fbo = true, - format = GL.RGBA8, -- more than enough - }) -end - -local fuction InitLosTexture(allyTeam) - gl.RenderToTexture(infoTextures[allyTeam], function() - gl.Clear(GL.COLOR_BUFFER_BIT, 0, 0, 0, 0) - end) -end - -local function renderToTextureFunc() -- this draws the fogspheres onto the texture - --gl.DepthMask(false) - gl.Texture(0, "$info:los") - gl.Texture(1, "$info:airlos") - gl.Texture(2, "$info:radar") - gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - - fullScreenQuadVAO:DrawArrays(GL.TRIANGLES) - gl.Texture(0, false) - gl.Texture(1, false) - gl.Texture(2, false) -end - -local function UpdateInfoLOSTexture(count) - gl.DepthMask(false) -- dont write to depth buffer - gl.Culling(false) -- cause our tris are reversed in plane vbo - infoShader:Activate() - infoShader:SetUniformFloat("outputAlpha", outputAlpha) - for i = 1, count do - if i == count then - infoShader:SetUniformFloat("time", (Spring.GetDrawFrame() + 0) / 1000) - else - infoShader:SetUniformFloat("time", (Spring.GetDrawFrame() + math.random()) / 1000) - end - gl.RenderToTexture(infoTextures[currentAllyTeam], renderToTextureFunc) - end - infoShader:Deactivate() - gl.DepthMask(false) --"BK OpenGL state resets", reset to default state -end - - -function widget:PlayerChanged(playerID) - local newAllyTeam = Spring.GetMyAllyTeamID() - if currentAllyTeam ~= newAllyTeam then -- do a few quick renders - currentAllyTeam = newAllyTeam - updateInfoLOSTexture = numFastUpdates - delay = 5 - end - if updateInfoLOSTexture > 0 and autoreload then - Spring.Echo("Fast Updating infolos texture for", currentAllyTeam, updateInfoLOSTexture, "times") - end -end - -function widget:Initialize() - if not gl.CreateShader then -- no shader support, so just remove the widget itself, especially for headless - widgetHandler:RemoveWidget() - return - end - - for name, tex in pairs({LOS = "$info:los", AIRLOS = "$info:airlos", RADAR = "$info:radar" }) do - local texInfo = gl.TextureInfo(tex) - shaderConfig[name .. 'XSIZE'] = texInfo.xsize - shaderConfig[name .. 'YSIZE'] = texInfo.ysize - end - currentAllyTeam = Spring.GetMyAllyTeamID() - - for _, a in ipairs(Spring.GetAllyTeamList()) do - infoTextures[a] = CreateLosTexture() - end - - infoShader = LuaShader.CheckShaderUpdates(shaderSourceCache) - shaderCompiled = infoShader:Initialize() - if not shaderCompiled then Spring.Echo("Failed to compile InfoLOS GL4") end - - fullScreenQuadVAO = MakeTexRectVAO()-- -1, -1, 1, 0, 0,0,1, 0.5 - - WG['api_los_combiner'] = {} - WG['api_los_combiner'].GetInfoLOSTexture = GetInfoLOSTexture - widgetHandler:RegisterGlobal('GetInfoLOSTexture', WG['api_los_combiner'].GetInfoLOSTexture) -end - -function widget:Shutdown() - for i, infoTexture in pairs(infoTextures) do - gl.DeleteTexture(infoTexture) end - end - WG['api_los_combiner'] = nil - widgetHandler:DeregisterGlobal('GetInfoLOSTexture') -end - -function widget:GameFrame(n) - if (n % updateRate) == 0 then - updateInfoLOSTexture = math.max(1,updateInfoLOSTexture) - end -end -local lastUpdate = Spring.GetTimer() - -function widget:DrawGenesis() - -- local nowtime = Spring.GetTimer() - -- local deltat = Spring.DiffTimers(nowtime, lastUpdate) - -- keeping outputAlpha identical is a very important trick for never-before-seen areas! - -- outputAlpha = math.min(1.0, math.max(0.07,deltat)) - -- Spring.Echo(deltat,outputAlpha) - - - if updateInfoLOSTexture > 0 then - if delay > 0 then - delay = delay -1 - else - UpdateInfoLOSTexture(updateInfoLOSTexture) - updateInfoLOSTexture = 0 - delay = 0 - end - end -end - -if autoreload then - function widget:DrawScreen() -- the debug display output - infoShader = LuaShader.CheckShaderUpdates(shaderSourceCache) or infoShader - gl.Color(1,1,1,1) -- use this to show individual channels of the texture! - gl.Texture(0, infoTextures[currentAllyTeam]) - gl.Blending(GL.ONE, GL.ZERO) - gl.Culling(false) - gl.TexRect(0, 0, shaderConfig.TEXX, shaderConfig.TEXY, 0, 0, 1, 1) -- REMEMBER THAT THIS UPSIDE DOWN! - - gl.Text(tostring(currentAllyTeam), shaderConfig.TEXX, shaderConfig.TEXY,16) - gl.Texture(0,"$info:los") - gl.TexRect(texX, 0, texX + shaderConfig['LOSXSIZE'], shaderConfig['LOSYSIZE'], 0, 1, 1, 0) - gl.Texture(0,false) - - gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - if infoShader.DrawPrintf then infoShader.DrawPrintf() end - end -end \ No newline at end of file diff --git a/luaui/Widgets/api_unit_tracker_gl4.lua b/luaui/Widgets/api_unit_tracker_gl4.lua index f0f3f3db52c..7e345f8213f 100644 --- a/luaui/Widgets/api_unit_tracker_gl4.lua +++ b/luaui/Widgets/api_unit_tracker_gl4.lua @@ -7,7 +7,8 @@ function widget:GetInfo() license = "GNU GPL, v2 or later", layer = -828888, handler = true, - enabled = true + enabled = true, + depends = {'gl4'} } end @@ -18,6 +19,7 @@ local debuglevel = 0 -- debuglevel 3 is super verbose mode local debugdrawvisible = false +local L_DEPRECATED = LOG.DEPRECATED -- This widget's job is to provide a common interface for GL4 drawing widgets, that rely on having visible units present -- Widget draw classes: -- widgets that draw stuff for all visible units (trivial case) @@ -773,6 +775,7 @@ local iHaveDesynced = false local syncerrorpattern = "Sync error for ([%w%[%]_]+) in frame (%d+) %(got (%x+), correct is (%x+)%)" function widget:AddConsoleLine(lines, priority) + if priority and priority == L_DEPRECATED then return end --Spring.Echo(lines) if iHaveDesynced then return end local username, frameNumber, gotChecksum, correctChecksum = lines:match(syncerrorpattern) diff --git a/luaui/Widgets/api_unitbufferuniform_copy.lua b/luaui/Widgets/api_unitbufferuniform_copy.lua deleted file mode 100644 index d5b8e07081e..00000000000 --- a/luaui/Widgets/api_unitbufferuniform_copy.lua +++ /dev/null @@ -1,131 +0,0 @@ -function widget:GetInfo() - return { - name = "API UnitBufferUniform Copy", - version = "v0.1", - desc = "Copies SUniformsBuffer every Gameframe", - author = "Beherith", - date = "2024.12.05", - license = "GPL V2", - layer = 0, - enabled = true, - } -end - -local luaShaderDir = "LuaUI/Widgets/Include/" -local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") -local cmpShader - --- The compute shader is reponsible for updating the position, velocity, and color of each particle -local cmpSrc = [[ -#version 430 core - -layout(local_size_x = 32, local_size_y = 32, local_size_z = 1) in; - -layout(std140, binding = 0) readonly buffer MatrixBuffer { - mat4 mat[]; -}; - -struct SUniformsBuffer { - uint composite; // u8 drawFlag; u8 unused1; u16 id; - - uint unused2; - uint unused3; - uint unused4; - - float maxHealth; - float health; - float unused5; - float unused6; - - vec4 drawPos; - vec4 speed; - vec4[4] userDefined; //can't use float[16] because float in arrays occupies 4 * float space -}; - -layout(std140, binding=1) readonly buffer UniformsBuffer { - SUniformsBuffer uni[]; -}; - -layout(std140, binding=4) buffer UniformsBufferCopy { - SUniformsBuffer uniCopy[]; -}; - -void main(void) -{ - uint index = gl_GlobalInvocationID.x; - uniCopy[index].composite = uni[index].composite; - uniCopy[index].maxHealth = uni[index].maxHealth; - uniCopy[index].health = uni[index].health; - uniCopy[index].drawPos = uni[index].drawPos * 0.5; - uniCopy[index].speed = uni[index].speed; - uniCopy[index].userDefined[0] = uni[index].userDefined[0]; - uniCopy[index].userDefined[1] = uni[index].userDefined[1]; - uniCopy[index].userDefined[2] = uni[index].userDefined[2]; - uniCopy[index].userDefined[3] = uni[index].userDefined[3]; -} -]] - -local numEntries = 32768 -local structSize = 128 - -local copyRequested = false - -local UniformsBufferCopy - -function widget:Initialize() - UniformsBufferCopy = gl.GetVBO(GL.SHADER_STORAGE_BUFFER, false) - UniformsBufferCopy:Define(numEntries, { - {id = 0, name = "uints", size = structSize}, - } - ) - pcache = {} - - for i = 0, (numEntries * structSize -1) do - pcache[i+1] = 0 - end - UniformsBufferCopy:Upload(pcache) - UniformsBufferCopy:BindBufferRange(4) - - cmpShader = LuaShader({ - compute = cmpSrc, - uniformInt = { - heightmapTex = 0, - }, - uniformFloat = { - frameTime = 0.016, - } - }, "cmpShader") - - shaderCompiled = cmpShader:Initialize() - Spring.Echo("cmpShader ", shaderCompiled) - if not shaderCompiled then widgetHandler:RemoveWidget() end - - Spring.Echo("Hello") - WG['api_unitbufferuniform_copy'] = {} - WG['api_unitbufferuniform_copy'].GetUnitUniformBufferCopy = function() - copyRequested = true - return UniformsBufferCopy - end - widgetHandler:RegisterGlobal('GetUnitUniformBufferCopy', WG['api_unitbufferuniform_copy'].GetUnitUniformBufferCopy) -end - -function widget:Shutdown() - widgetHandler:DeregisterGlobal('GetUnitUniformBufferCopy') - - if cmpShader then cmpShader:Finalize() end - if UniformsBufferCopy then UniformsBufferCopy:Delete() end -end - -local lastUpdateFrame = 0 -function widget:DrawScreenPost() - if not copyRequested then return end - if Spring.GetGameFrame() == lastUpdateFrame then - return - else - lastUpdateFrame = Spring.GetGameFrame() - end - UniformsBufferCopy:BindBufferRange(4) -- dunno why, but if we dont, it gets lost after a few seconds - cmpShader:Activate() - gl.DispatchCompute((Game.maxUnits/32), 1, 1) - cmpShader:Deactivate() -end diff --git a/luaui/Widgets/camera_minimum_height_limiter.lua b/luaui/Widgets/camera_minimum_height_limiter.lua deleted file mode 100644 index 48967315dd3..00000000000 --- a/luaui/Widgets/camera_minimum_height_limiter.lua +++ /dev/null @@ -1,60 +0,0 @@ -function widget:GetInfo() - return { - name = "Camera Minimum Height", - desc = "Prevents you from zooming all the way to the ground, all the way to desired level - configurable in settings", - author = "Damgam", - date = "2022", - license = "GNU GPL, v2 or later", - layer = -3, - enabled = true, - } -end - - - -local defaultDesiredLevel = 300 -local desiredLevel = Spring.GetConfigInt("MinimumCameraHeight", defaultDesiredLevel) -local optionRefresh = 0 -local fastUpdateRate = false -local vsx,vsy = Spring.GetViewGeometry() - -function widget:ViewResize() - vsx,vsy = Spring.GetViewGeometry() -end - -local sec = 0 -function widget:Update(dt) - sec = sec + dt - if sec > (fastUpdateRate and 0.001 or 0.15) then - sec = 0 - if WG['advplayerlist_api'] and WG['advplayerlist_api'].GetLockPlayerID() ~= nil then - return - end - local x,y,z = Spring.GetCameraPosition() - local desc, params = Spring.TraceScreenRay(vsx/2, vsy/2, true) - if params and params[3] then - local dist = math.distance3d(x, y, z, params[1], params[2], params[3]) - fastUpdateRate = dist < (desiredLevel + 200) - if dist < desiredLevel then - local camstate = Spring.GetCameraState() - if camstate.name == "ta" then - if camstate.height < desiredLevel then - camstate.height = desiredLevel - Spring.SetCameraState(camstate, Spring.GetConfigFloat("CameraTransitionTime", 0)) - end - elseif camstate.name == "spring" then - if camstate.dist < desiredLevel then - camstate.dist = desiredLevel - Spring.SetCameraState(camstate, Spring.GetConfigFloat("CameraTransitionTime", 0)) - end - end - end - - optionRefresh = optionRefresh + 1 - if optionRefresh > 20 then - optionRefresh = 0 - desiredLevel = Spring.GetConfigInt("MinimumCameraHeight", defaultDesiredLevel) - end - end - end -end \ No newline at end of file diff --git a/luaui/Widgets/cmd_bomber_attack_building_ground.lua b/luaui/Widgets/cmd_bomber_attack_building_ground.lua index fa6ee65339c..63a39e7a541 100644 --- a/luaui/Widgets/cmd_bomber_attack_building_ground.lua +++ b/luaui/Widgets/cmd_bomber_attack_building_ground.lua @@ -33,7 +33,7 @@ for udid, ud in pairs(UnitDefs) do if ud.isBuilding or string.find(ud.name, "nanotc") then isBuilding[udid] = true end - if (ud["weapons"] and ud["weapons"][1] and isBomb[ud["weapons"][1].weaponDef] == true) or (string.find(ud.name, 'armlance') or string.find(ud.name, 'cortitan')) then + if (ud["weapons"] and ud["weapons"][1] and isBomb[ud["weapons"][1].weaponDef] == true) or (string.find(ud.name, 'armlance') or string.find(ud.name, 'cortitan') or string.find(ud.name, 'legatorpbomber')) then isBomber[udid] = true end end diff --git a/luaui/Widgets/cmd_context_build.lua b/luaui/Widgets/cmd_context_build.lua index 744ff10b2df..c7cf8afb081 100644 --- a/luaui/Widgets/cmd_context_build.lua +++ b/luaui/Widgets/cmd_context_build.lua @@ -1,7 +1,7 @@ local voidWater = false local waterLevel = Spring.GetModOptions().map_waterlevel -local waterIsLava = Spring.GetModOptions().map_waterislava +local waterIsLava = Spring.Lava.isLavaMap local minHeight, _, _, _ = Spring.GetGroundExtremes() local success, mapinfo = pcall(VFS.Include,"mapinfo.lua") -- load mapinfo.lua confs if success and mapinfo then @@ -22,6 +22,8 @@ end local isPregame = Spring.GetGameFrame() == 0 and not isSpec +local uDefNames = UnitDefNames + local GetActiveCommand = Spring.GetActiveCommand local SetActiveCommand = Spring.SetActiveCommand local spGetMouseState = Spring.GetMouseState @@ -77,8 +79,6 @@ local unitlist = { {'armageo','armuwageo'}, {'corgeo','coruwgeo'}, {'corageo','coruwageo'}, - {'armllt', 'armptl'}, -- for the amphibious construction vehicles trying to build ptls on land - {'corllt', 'corptl'}, } @@ -100,7 +100,6 @@ local legionUnitlist = { {'legsolar','legtide'}, --{'leglab','corsy'},--soon(tm) {'leglht','legtl'}, - {'leglht', 'legptl'},--this may need more hookery in 2 places below {'leghive', 'legfhive'}, --{'cornanotc','cornanotcplat'}, {'legvp','legamsub'}, @@ -110,13 +109,6 @@ local legionUnitlist = { --{'corageo','coruwageo'}, } - ---this has to account for legotter too, later -local ptlCons = { - ['armbeaver'] = true, - ['cormuskrat'] = true, -} - local groundBuildings = {} local waterBuildings = {} @@ -241,23 +233,6 @@ function widget:DrawWorld() local name = unitName[alt] - -- Check for amphibious constructors - local selectedUnits = GetSelectedUnits() - local amphibCons = 0 - for _, unitID in ipairs(selectedUnits) do - if ptlCons[unitName[GetUnitDefID(unitID)]] then - amphibCons = amphibCons + 1 - end - end - - if amphibCons > 0 then - local amphibBuildings = { - ['cortl'] = 'corptl', - ['armtl'] = 'armptl', - } - name = amphibBuildings[name] or name - end - -- Water level is always 0, but there's minor inaccuracy in the chain, so fuzz it a bit if pos[2] < 0.01 then if isGround then @@ -283,32 +258,41 @@ function widget:GameStart() isPregame = false end +local function addUnitDefPair(firstUnitName, lastUnitName) + local firstUnitDef = uDefNames[firstUnitName] + local lastUnitDef = uDefNames[lastUnitName] + + if not (firstUnitDef and lastUnitDef and firstUnitDef.id and lastUnitDef.id) then + Spring.Echo(string.format("%s: can't add %s/%s pair", "cmd_context_build", firstUnitName, lastUnitName)) + return + end + + for i, unitDef in ipairs({firstUnitDef, lastUnitDef}) do + local unitDefID = unitDef.id + local isWater = i % 2 == 0 + + -- Break the unit list into two matching arrays + if isWater then + table.insert(waterBuildings, unitDefID) + else + table.insert(groundBuildings, unitDefID) + end + end +end + function widget:Initialize() if Spring.IsReplay() or Spring.GetGameFrame() > 0 then maybeRemoveSelf() end - - if Spring.GetModOptions().experimentallegionfaction then - for _,v in ipairs(legionUnitlist) do + + if Spring.GetModOptions().experimentallegionfaction then + for _,v in ipairs(legionUnitlist) do table.insert(unitlist, v) end end - - local uDefNames = UnitDefNames + for _,unitNames in ipairs(unitlist) do - for i, unitName in ipairs(unitNames) do - local unitDefID = uDefNames[unitName].id - local isWater = i % 2 == 0 - - -- Break the unit list into two matching arrays - if unitDefID then - if isWater then - table.insert(waterBuildings, unitDefID) - else - table.insert(groundBuildings, unitDefID) - end - end - end + addUnitDefPair(unitNames[1], unitNames[2]) end end diff --git a/luaui/Widgets/cmd_share_unit.lua b/luaui/Widgets/cmd_share_unit.lua index afdb4a63f31..38e213585f0 100644 --- a/luaui/Widgets/cmd_share_unit.lua +++ b/luaui/Widgets/cmd_share_unit.lua @@ -130,7 +130,11 @@ local function getMouseTargetPosition() return mouseTarget[1], mouseTarget[2], mouseTarget[3] elseif mouseTargetType == "unit" then local _, coordinates = TraceScreenRay(mx, my, true) - return coordinates[1], coordinates[2], coordinates[3], mouseTarget + if coordinates then + return coordinates[1], coordinates[2], coordinates[3], mouseTarget + else + return nil, nil, nil, mouseTarget + end elseif mouseTargetType == "feature" then local _, coordinates = TraceScreenRay(mx, my, true) if coordinates then @@ -285,7 +289,7 @@ local function getSelectedTeam() local tx, ty, tz, targetUnitID = getMouseTargetPosition() - if (not tx) then + if (not tx and not targetUnitID) then return nil end diff --git a/luaui/Widgets/dbg_jitter_timer.lua b/luaui/Widgets/dbg_jitter_timer.lua index 702b9c3a15c..10a749c22b5 100644 --- a/luaui/Widgets/dbg_jitter_timer.lua +++ b/luaui/Widgets/dbg_jitter_timer.lua @@ -47,6 +47,7 @@ local drawframeload = 0 local gameframespread = 0 local drawframespread = 0 +local drawcounthist = {} local function Loadms(millisecs, spread) if spread ~= nil then millisecs = millisecs + math.min(10*spread, -1.0 * spread * math.log(1.0 - math.random())) end @@ -161,6 +162,7 @@ function widget:DrawScreen() elseif drawpersimframe ==4 then CTOError = 8 * math.min(math.min(math.abs(fto-0.25), math.abs(fto -0.5)), math.min(math.abs(fto), math.abs(fto-0.75))) end + drawcounthist[actualdrawspergameframe] = (drawcounthist[actualdrawspergameframe] or 0) + 1 --Spring.Echo(Spring.GetGameFrame(), fto, CTOError) gl.PushMatrix() @@ -175,21 +177,35 @@ function widget:DrawScreen() gl.Color(0.0, 0.5, 0.0, 1.0) gl.Rect(viewSizeX - (timerwidth*0.5),viewSizeY - timerYoffset ,viewSizeX + timerwidth * 0.5 - (timerwidth * (1.0 - spreadCTO)),viewSizeY - timerYoffset + timerheight / 2); - - - + local text = '' gl.Color(1.0, 1.0, 1.0, 1.0) - gl.Text(string.format("DrawFrame FTODelta = %.3f FTO = %.3f", currCTOdelta, fto), viewSizeX - timerwidth, viewSizeY - timerYoffset, 16, "d") - - gl.Text(string.format("deltajitter = %.3f d/s = %d", deltajitter * 30, actualdrawspergameframe), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight - 16, 16, "d") - gl.Text(string.format("mean jitter = %.3f ", avgjitter* 30), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-32, 16, "d") - - gl.Text(string.format("averageCTO = %.3f, spreadCTO = %.3f ", averageCTO, spreadCTO ), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-48, 16, "d") + text = text .. string.format("DrawFrame FTODelta = %.3f FTO = %.3f\n", currCTOdelta, fto) + local drawhisttotal = math.max(1,( + (drawcounthist[1] or 0 ) + (drawcounthist[2] or 0 ) + (drawcounthist[3] or 0) + (drawcounthist[4] or 0 ) ) ) + text = text .. string.format("dshist [1:%d, 2:%d, 3:%d, 4:%d, 5:%d, 6:%d] \n", + (drawcounthist[1] or 0) , + (drawcounthist[2] or 0) , + (drawcounthist[3] or 0) , + (drawcounthist[4] or 0) , + (drawcounthist[5] or 0) , + (drawcounthist[6] or 0) ) + text = text .. string.format("deltajitter = %.3f d/s = %d\n", deltajitter * 30, actualdrawspergameframe) + text = text .. string.format("mean jitter = %.3f \n", avgjitter* 30) + text = text .. string.format("averageCTO = %.3f, spreadCTO = %.3f \n", averageCTO, spreadCTO ) + text = text .. string.format("CamJitter = %.3f \n",camerarelativejitter) + text = text .. string.format("DrawFrame = %d \n",Spring.GetDrawFrame()) + gl.Text(text, viewSizeX - timerwidth, viewSizeY - timerYoffset + 48, 16, "d") + --gl.Text(string.format("DrawFrame FTODelta = %.3f FTO = %.3f", currCTOdelta, fto), viewSizeX - timerwidth, viewSizeY - timerYoffset, 16, "d") + + --gl.Text(string.format("deltajitter = %.3f d/s = %d", deltajitter * 30, actualdrawspergameframe), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight - 16, 16, "d") + --gl.Text(string.format("mean jitter = %.3f ", avgjitter* 30), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-32, 16, "d") + + --gl.Text(string.format("averageCTO = %.3f, spreadCTO = %.3f ", averageCTO, spreadCTO ), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-48, 16, "d") --gl.Text(string.format("CamSpread = %.3f, CamMean = %.3f deltacam = %.3f jitter = %.3f",cammovespread, cammovemean, deltacam,camerarelativejitter), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-84, 16, "d") - gl.Text(string.format("CamJitter = %.3f",camerarelativejitter), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-84, 16, "d") - gl.Text(string.format("DrawFrame = %d",Spring.GetDrawFrame()), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-116, 32, "d") + --gl.Text(string.format("CamJitter = %.3f",camerarelativejitter), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-84, 16, "d") + --gl.Text(string.format("DrawFrame = %d",Spring.GetDrawFrame()), viewSizeX - timerwidth, viewSizeY - timerYoffset + timerheight-116, 32, "d") gl.Color(1.0, 1.0, 1.0, 1.0) gl.PopMatrix() diff --git a/luaui/Widgets/dbg_test_runner.lua b/luaui/Widgets/dbg_test_runner.lua index 2c4bada6f2d..8f743a0611a 100644 --- a/luaui/Widgets/dbg_test_runner.lua +++ b/luaui/Widgets/dbg_test_runner.lua @@ -19,15 +19,19 @@ local Assertions = VFS.Include('common/testing/assertions.lua') local TestResults = VFS.Include('common/testing/results.lua') local Util = VFS.Include('common/testing/util.lua') local Mock = VFS.Include('common/testing/mock.lua') +local TestExtraUtils = VFS.Include('common/testing/test_extra_utils.lua') local rpc = VFS.Include('common/testing/rpc.lua'):new() local LOG_LEVEL = LOG.INFO local initialWidgetActive = {} +local testModeScenario = false +local defaultTestTimeout = 30 +local defaultScenarioTimeout = 300 local config = { - returnTimeout = 30, + returnTimeout = defaultTestTimeout, waitTimeout = 5 * 30, showAllResults = true, noColorOutput = false, @@ -38,6 +42,10 @@ local config = { "LuaUI/Widgets/tests", "LuaUI/Tests", }, + scenarioRoots = { + "LuaUI/Widgets/scenarios", + "LuaUI/Scenarios", + }, } local testReporter = nil @@ -97,6 +105,29 @@ local function matchesPatterns(str, patterns) return false end +-- scenarios +-- ========= + +local scenarioConfig = {} +local scenarioOpts = {} +local function processScenarioArguments(args) + if args then + for index, pair in ipairs(args) do + for key, default in pairs(pair) do + local val = scenarioOpts[index+1] + if val and type(default) == 'number' then + val = tonumber(val) + end + scenarioConfig[key] = val or default + end + end + else + for idx=2, #scenarioOpts do + scenarioConfig[idx-1] = scenarioOpts[idx] + end + end +end + -- main code -- ========= @@ -136,7 +167,8 @@ local function findAllTestFiles(patterns) patterns = patterns, })) local result = {} - for _, path in ipairs(config.testRoots) do + local roots = testModeScenario and config.scenarioRoots or config.testRoots + for _, path in ipairs(roots) do for _, testFileInfo in ipairs(findTestFiles(path, patterns)) do result[#result + 1] = testFileInfo end @@ -615,14 +647,14 @@ end SyncedProxy = createNestedProxy(Proxy.PREFIX.CALL) -SyncedRun = function(fn) +SyncedRun = function(fn, timeout) local serializedFn, returnID = rpc:serializeFunctionRun(fn, 3) returnState = { waitingForReturnID = returnID, success = nil, pendingValueOrError = nil, - timeoutExpireFrame = Spring.GetGameFrame() + config.returnTimeout, + timeoutExpireFrame = Spring.GetGameFrame() + (timeout or config.returnTimeout), } log(LOG.DEBUG, "[SyncedRun.send]") @@ -810,6 +842,11 @@ Test = { end, } +-- Add extra utils to Test +for k, v in pairs(TestExtraUtils.exports) do + Test[k] = v +end + function widget:RecvLuaMsg(msg) if not returnState.waitingForReturnID then return @@ -841,6 +878,15 @@ end local function runTestInternal() log(LOG.DEBUG, "[runTestInternal]") + if testRunState.filesIndex == 1 then + TestExtraUtils.startTests() + end + + if testModeScenario then + local argsOk, argsResult = Util.yieldable_pcall(scenario_arguments) + processScenarioArguments(argsOk and argsResult or false) + end + local skipOk, skipResult if skip ~= nil then log(LOG.DEBUG, "[runTestInternal.skip]") @@ -902,6 +948,11 @@ local function runTestInternal() end end + TestExtraUtils.endTest() + if testRunState.filesIndex == #testRunState.files then + TestExtraUtils.endTests() + end + if not cleanupOk then log(LOG.DEBUG, "[runTestInternal.cleanup.error]") error(cleanupResult, 2) @@ -976,6 +1027,7 @@ local function initializeTestEnvironment() type = type, unpack = unpack, select = select, + Scenario = scenarioConfig, Json = Json, } @@ -1248,11 +1300,26 @@ function widget:Initialize() self, "runtests", function(cmd, optLine, optWords, data, isRepeat, release, actions) + testModeScenario = false + config.returnTimeout = defaultTestTimeout startTests(Util.splitPhrases(optLine)) end, nil, "t" ) + widgetHandler.actionHandler:AddAction( + self, + "runscenario", + function(cmd, optLine, optWords, data, isRepeat, release, actions) + testModeScenario = true + config.returnTimeout = defaultScenarioTimeout + scenarioConfig = {} + scenarioOpts = Util.splitPhrases(optLine) + startTests(scenarioOpts[1]) + end, + nil, + "t" + ) widgetHandler.actionHandler:AddAction( self, "runtestsheadless", @@ -1268,6 +1335,7 @@ function widget:Initialize() "t" ) + TestExtraUtils.linkActions(self) gameTimer = Spring.GetTimer() end diff --git a/luaui/Widgets/gfx_airjets_gl4.lua b/luaui/Widgets/gfx_airjets_gl4.lua index 31cd490f8be..46025e5522a 100644 --- a/luaui/Widgets/gfx_airjets_gl4.lua +++ b/luaui/Widgets/gfx_airjets_gl4.lua @@ -29,11 +29,9 @@ end -- 'Speedups' -------------------------------------------------------------------------------- -local spGetUnitPieceInfo = Spring.GetUnitPieceInfo local spGetGameFrame = Spring.GetGameFrame local spGetUnitPieceMap = Spring.GetUnitPieceMap local spGetUnitIsActive = Spring.GetUnitIsActive -local spGetUnitMoveTypeData = Spring.GetUnitMoveTypeData local spGetUnitVelocity = Spring.GetUnitVelocity local spGetUnitTeam = Spring.GetUnitTeam local glBlending = gl.Blending @@ -56,6 +54,9 @@ local spValidUnitID = Spring.ValidUnitID local enableLights = true local lightMult = 1.4 +local texture1 = "bitmaps/GPL/Lups/perlin_noise.jpg" -- noise texture +local texture2 = ":c:bitmaps/gpl/lups/jet2.bmp" -- shape + local effectDefs = { -- land vechs @@ -67,57 +68,57 @@ local effectDefs = { -- scouts ["armpeep"] = { - { color = { 0.7, 0.4, 0.1 }, width = 4, length = 20, piece = "jet1", limit = true }, - { color = { 0.7, 0.4, 0.1 }, width = 4, length = 20, piece = "jet2", limit = true }, + { color = { 0.7, 0.4, 0.1 }, width = 4, length = 20, piece = "jet1" }, + { color = { 0.7, 0.4, 0.1 }, width = 4, length = 20, piece = "jet2" }, }, ["corfink"] = { - { color = { 0.7, 0.4, 0.1 }, width = 2.3, length = 18, piece = "thrusta", limit = true }, - { color = { 0.7, 0.4, 0.1 }, width = 2.3, length = 18, piece = "thrustb", limit = true }, + { color = { 0.7, 0.4, 0.1 }, width = 2.3, length = 18, piece = "thrusta" }, + { color = { 0.7, 0.4, 0.1 }, width = 2.3, length = 18, piece = "thrustb" }, }, -- fighters ["armfig"] = { - { color = { 0.7, 0.4, 0.1 }, width = 6, length = 45, piece = "thrust", limit = true }, + { color = { 0.7, 0.4, 0.1 }, width = 6, length = 45, piece = "thrust" }, }, ["corveng"] = { - { color = { 0.7, 0.4, 0.1 }, width = 3.3, length = 24, piece = "thrust1", limit = true }, - { color = { 0.7, 0.4, 0.1 }, width = 3.3, length = 24, piece = "thrust2", limit = true }, + { color = { 0.7, 0.4, 0.1 }, width = 3.3, length = 24, piece = "thrust1" }, + { color = { 0.7, 0.4, 0.1 }, width = 3.3, length = 24, piece = "thrust2" }, }, ["armsfig"] = { - { color = { 0.2, 0.8, 0.2 }, width = 4, length = 25, piece = "thrust", limit = true }, + { color = { 0.2, 0.8, 0.2 }, width = 4, length = 25, piece = "thrust" }, }, ["armsfig2"] = { - { color = { 0.2, 0.8, 0.2 }, width = 8, length = 45, piece = "thrust", limit = true }, + { color = { 0.2, 0.8, 0.2 }, width = 8, length = 45, piece = "thrust" }, }, ["corsfig"] = { - { color = { 0.2, 0.8, 0.2 }, width = 3, length = 32, piece = "thrust", limit = true }, + { color = { 0.2, 0.8, 0.2 }, width = 3, length = 32, piece = "thrust" }, }, ["corsfig2"] = { - { color = { 0.2, 0.8, 0.2 }, width = 8, length = 45, piece = "thrust", limit = true }, + { color = { 0.2, 0.8, 0.2 }, width = 8, length = 45, piece = "thrust" }, }, ["armhawk"] = { - { color = { 0.1, 0.4, 0.6 }, width = 7, length = 45, piece = "thrust", light = 1 }, + { color = { 0.1, 0.4, 0.6 }, width = 5, length = 35, piece = "thrust" }, }, ["corvamp"] = { - { color = { 0.1, 0.4, 0.6 }, width = 3.5, length = 35, piece = "thrusta", limit = true }, + { color = { 0.1, 0.4, 0.6 }, width = 3.5, length = 35, piece = "thrusta" }, }, ["legfig"] = { - { color = { 0.7, 0.4, 0.1 }, width = 2, length = 15, piece = "thrust", limit = true }, + { color = { 0.7, 0.4, 0.1 }, width = 2, length = 15, piece = "thrust" }, }, ["legionnaire"] = { - { color = { 0.2, 0.4, 0.5 }, width = 3.5, length = 30, piece = "thrusta", limit = true }, + { color = { 0.2, 0.4, 0.5 }, width = 3.5, length = 30, piece = "thrusta" }, }, ["legvenator"] = { - { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "lthrust", limit = true }, - { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "rthrust", limit = true }, + { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "lthrust" }, + { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "rthrust" }, }, -- radar ["armawac"] = { { color = { 0.1, 0.4, 0.6 }, width = 3.5, length = 30, piece = "thrust", light = 1 }, }, ["corawac"] = { - { color = { 0.1, 0.4, 0.6 }, width = 4, length = 25, piece = "lthrust", light = 1 }, - { color = { 0.1, 0.4, 0.6 }, width = 4, length = 50, piece = "mthrust", light = 1 }, - { color = { 0.1, 0.4, 0.6 }, width = 4, length = 25, piece = "rthrust", light = 1 }, + { color = { 0.2, 0.8, 0.2 }, width = 4, length = 30, piece = "lthrust", light = 1 }, + { color = { 0.2, 0.8, 0.2 }, width = 4, length = 30, piece = "mthrust", light = 1 }, + { color = { 0.2, 0.8, 0.2 }, width = 4, length = 30, piece = "rthrust", light = 1 }, }, ["legwhisper"] = { { color = { 0.1, 0.4, 0.6 }, width = 3.5, length = 30, piece = "thrust", light = 1 }, @@ -150,10 +151,10 @@ local effectDefs = { { color = { 0.7, 0.4, 0.1 }, width = 4, length = 15, piece = "thrustm", light = 1 }, --, xzVelocity = 1.5 -- removed xzVelocity else the other thrusters get disabled as well }, ["armhvytrans"] = { - { color = { 0.7, 0.4, 0.1 }, width = 5, length = 16, piece = "thrustfl", light = 1 }, - { color = { 0.7, 0.4, 0.1 }, width = 5, length = 16, piece = "thrustfr", light = 1 }, - { color = { 0.7, 0.4, 0.1 }, width = 4, length = 15, piece = "thrustbl", light = 1 }, - { color = { 0.7, 0.4, 0.1 }, width = 4, length = 15, piece = "thrustbr", light = 1 }, --, xzVelocity = 1.5 -- removed xzVelocity else the other thrusters get disabled as well + { color = { 0.7, 0.4, 0.1 }, width = 3, length = 15, piece = "thrustfl", light = 1 }, + { color = { 0.7, 0.4, 0.1 }, width = 3, length = 15, piece = "thrustfr", light = 1 }, + { color = { 0.7, 0.4, 0.1 }, width = 3, length = 15, piece = "thrustbl", light = 1 }, + { color = { 0.7, 0.4, 0.1 }, width = 3, length = 15, piece = "thrustbr", light = 1 }, --, xzVelocity = 1.5 -- removed xzVelocity else the other thrusters get disabled as well }, ["corvalk"] = { { color = { 0.7, 0.4, 0.1 }, width = 6, length = 17, piece = "thrust1", emitVector = { 0, 1, 0 }, light = 1 }, @@ -212,8 +213,8 @@ local effectDefs = { { color = { 0.2, 0.8, 0.2 }, width = 2, length = 16, piece = "thrusttrail", emitVector = { 0, 0, -1 }, xzVelocity = 1.5, light = 1 }, }, ["corape"] = { - { color = { 0.1, 0.4, 0.6 }, width = 4, length = 24, piece = "rthrust", emitVector = { 0, 0, -1 }, xzVelocity = 1.5, light = 1 }, - { color = { 0.1, 0.4, 0.6 }, width = 4, length = 24, piece = "lthrust", emitVector = { 0, 0, -1 }, xzVelocity = 1.5, light = 1 }, + { color = { 0.1, 0.4, 0.6 }, width = 4, length = 16, piece = "rthrust", emitVector = { 0, 0, -1 }, xzVelocity = 1.5, light = 1 }, + { color = { 0.1, 0.4, 0.6 }, width = 4, length = 16, piece = "lthrust", emitVector = { 0, 0, -1 }, xzVelocity = 1.5, light = 1 }, --{color={0.1,0.4,0.6}, width=2.2, length=4.7, piece="lhthrust1", emitVector= {1,0,0}, light=1}, --{color={0.1,0.4,0.6}, width=2.2, length=4.7, piece="rhthrust2", emitVector= {1,0,0}, light=1}, --{color={0.1,0.4,0.6}, width=2.2, length=4.7, piece="lhthrust2", emitVector= {-1,0,0}, light=1}, @@ -248,7 +249,7 @@ local effectDefs = { { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "thrust2", emitVector = { 0, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "thrust3", emitVector = { 0, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "thrust4", emitVector = { 0, 1, 0 }, light = 0.6 }, - + { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "thrust5", emitVector = { 1, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "thrust6", emitVector = { 1, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 3, length = 24, piece = "thrust7", emitVector = { 1, 1, 0 }, light = 0.6 }, @@ -261,7 +262,7 @@ local effectDefs = { { color = { 0.1, 0.6, 0.4 }, width = 6, length = 48, piece = "thrust2", emitVector = { 0, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 6, length = 48, piece = "thrust3", emitVector = { 0, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 6, length = 48, piece = "thrust4", emitVector = { 0, 1, 0 }, light = 0.6 }, - + { color = { 0.1, 0.6, 0.4 }, width = 6, length = 48, piece = "thrust5", emitVector = { 1, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 6, length = 48, piece = "thrust6", emitVector = { 1, 1, 0 }, light = 0.6 }, { color = { 0.1, 0.6, 0.4 }, width = 6, length = 48, piece = "thrust7", emitVector = { 1, 1, 0 }, light = 0.6 }, @@ -280,20 +281,20 @@ local effectDefs = { -- bladewing ["corbw"] = { - { color = { 0.1, 0.4, 0.6 }, width = 1.8, length = 7.5, piece = "thrusta", limit = true }, - { color = { 0.1, 0.4, 0.6 }, width = 1.8, length = 7.5, piece = "thrustb", limit = true }, + { color = { 0.1, 0.4, 0.6 }, width = 1.8, length = 7.5, piece = "thrusta" }, + { color = { 0.1, 0.4, 0.6 }, width = 1.8, length = 7.5, piece = "thrustb" }, }, ["cordroneold"] = { - { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrusta", limit = true }, - { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrustb", limit = true }, + { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrusta" }, + { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrustb" }, }, ["cordrone"] = { - { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrusta", limit = true }, - { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrustb", limit = true }, + { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrusta" }, + { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrustb" }, }, ["cortdrone"] = { - { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrusta", limit = true }, - { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrustb", limit = true }, + { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrusta" }, + { color = { 0.1, 0.4, 0.6 }, width = 1.2, length = 5, piece = "thrustb" }, }, -- bombers @@ -360,6 +361,12 @@ local effectDefs = { ["legkam"] = { { color = { 0.2, 0.8, 0.2 }, width = 4, length = 25, piece = "thrust", light = 1 }, }, + ["legatorpbomber"] = { + { color = { 0.2, 0.8, 0.2 }, width = 4, length = 25, piece = "rightAJet", light = 1 }, + { color = { 0.2, 0.8, 0.2 }, width = 4, length = 25, piece = "leftAJet", light = 1 }, + { color = { 0.2, 0.8, 0.2 }, width = 3, length = 19, piece = "rightBJet", light = 1 }, + { color = { 0.2, 0.8, 0.2 }, width = 3, length = 19, piece = "leftBJet", light = 1 }, + }, ["armsb"] = { { color = { 0.2, 0.8, 0.2 }, width = 4, length = 36, piece = "thrustc", light = 1 }, { color = { 0.2, 0.8, 0.2 }, width = 2.2, length = 18, piece = "thrusta", light = 1 }, @@ -380,9 +387,10 @@ local effectDefs = { { color = { 0.1, 0.4, 0.6 }, width = 10, length = 25, piece = "flarebr", emitVector = { 0, 1, 0 }, light = 0.6 }, }, ["legphoenix"] = { - { color = { 0.8, 0.7, 0.2 }, width = 4, length = 30, piece = "lthrust", light = 1 }, - { color = { 0.8, 0.7, 0.2 }, width = 5, length = 40, piece = "mthrust", light = 1 }, - { color = { 0.8, 0.7, 0.2 }, width = 4, length = 30, piece = "rthrust", light = 1 }, + { color = { 0.1, 0.6, 0.4 }, width = 5, length = 36, piece = "rthrust", emitVector = { 0, 1, 0 }, light = 0.6 }, + { color = { 0.1, 0.6, 0.4 }, width = 5, length = 36, piece = "rrthrust", emitVector = { 0, 1, 0 }, light = 0.6 }, + { color = { 0.1, 0.6, 0.4 }, width = 5, length = 36, piece = "lthrust", emitVector = { 0, 1, 0 }, light = 0.6 }, + { color = { 0.1, 0.6, 0.4 }, width = 5, length = 36, piece = "llthrust", emitVector = { 0, 1, 0 }, light = 0.6 }, }, -- construction ["armca"] = { @@ -466,19 +474,8 @@ for name, effects in pairs(effectDefs) do end end -local distortion = 0.008 -local animSpeed = 3 -local jitterWidthScale = 3 -local jitterLengthScale = 3 - -local texture1 = "bitmaps/GPL/Lups/perlin_noise.jpg" -- noise texture ---local texture1 = "luaui/images/perlin_noise_rgba_512.png" -- noise texture -local texture2 = ":c:bitmaps/gpl/lups/jet2.bmp" -- shape -local texture3 = ":c:bitmaps/GPL/Lups/jet.bmp" -- jitter shape - local xzVelocityUnits = {} local defs = {} -local limitDefs = {} for name, effects in pairs(effectDefs) do if UnitDefNames[name] then for fx, data in pairs(effects) do @@ -488,9 +485,6 @@ for name, effects in pairs(effectDefs) do if effectDefs[name][fx].xzVelocity then xzVelocityUnits[UnitDefNames[name].id] = effectDefs[name][fx].xzVelocity end - if effectDefs[name][fx].limit then - limitDefs[UnitDefNames[name].id] = true - end end defs[UnitDefNames[name].id] = effectDefs[name] end @@ -498,11 +492,9 @@ end effectDefs = defs defs = nil -local lightDefs = {} for name, effects in pairs(effectDefs) do for fx, data in pairs(effects) do if data.light then - lightDefs[name] = true effectDefs[name][fx].light = data.light * lightMult end end @@ -515,13 +507,13 @@ end local activePlanes = {} local inactivePlanes = {} local lights = {} -local unitPieceOffset = {} local shaders local lastGameFrame = Spring.GetGameFrame() local updateSec = 0 local spec, fullview = Spring.GetSpectatingState() +local myAllyTeamID = Spring.GetMyAllyTeamID() local enabled = true local lighteffectsEnabled = false -- TODO (enableLights and WG['lighteffects'] ~= nil and WG['lighteffects'].enableThrusters) @@ -531,10 +523,8 @@ local lighteffectsEnabled = false -- TODO (enableLights and WG['lighteffects'] ~ -- draw in refract/reflect too? -- GL4 Variables: -local quadVBO = nil local jetInstanceVBO = nil local jetShader = nil -local jitterShader = nil local luaShaderDir = "LuaUI/Widgets/Include/" local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") @@ -804,9 +794,9 @@ local function DrawParticles(isReflection) if not enabled then return false end -- validate unitID buffer drawframe = drawframe + 1 - if drawframe %99 == 1 then + --if drawframe %99 == 1 then --Spring.Echo("Numairjets", jetInstanceVBO.usedElements) - end + --end if jetInstanceVBO.usedElements > 0 then gl.Culling(false) @@ -921,11 +911,6 @@ local function RemoveUnit(unitID, unitDefID, unitTeamID) inactivePlanes[unitID] = nil activePlanes[unitID] = nil RemoveLights(unitID) - for i = 1, #effectDefs[unitDefID] do - if effectDefs[unitDefID][i].piecenum then - unitPieceOffset[unitID..'_'..effectDefs[unitDefID][i].piecenum] = nil - end - end end end @@ -934,14 +919,6 @@ local function AddUnit(unitID, unitDefID, unitTeamID) return false end Activate(unitID, unitDefID, "addunit") - - if lighteffectsEnabled and lightDefs[unitDefID] then - for i = 1, #effectDefs[unitDefID] do - if effectDefs[unitDefID][i].piecenum then - unitPieceOffset[unitID..'_'..effectDefs[unitDefID][i].piecenum] = spGetUnitPieceInfo(unitID, effectDefs[unitDefID][i].piecenum).offset - end - end - end end -------------------------------------------------------------------------------- @@ -955,7 +932,6 @@ function widget:Update(dt) if gf ~= lastGameFrame and updateSec > 0.51 then -- to limit the number of unit status checks --[[ if Spring.GetGameFrame() > 0 then - ValidateUnitIDs(jetInstanceVBO.indextoUnitID) local activecnt = 0 local inactivecnt = 0 @@ -1045,6 +1021,9 @@ function widget:RenderUnitDestroyed(unitID, unitDefID, unitTeam) RemoveUnit(unitID, unitDefID, unitTeam) end +function widget:UnitGiven(unitID, unitDefID, unitTeam, oldTeam) + AddUnit(unitID, unitDefID, unitTeam) +end function widget:UnitTaken(unitID, unitDefID, unitTeam, newTeamId) RemoveUnit(unitID, unitDefID, unitTeam) end @@ -1066,7 +1045,6 @@ local function reInitialize() activePlanes = {} inactivePlanes = {} lights = {} - unitPieceOffset = {} clearInstanceTable(jetInstanceVBO) for _, unitID in ipairs(Spring.GetAllUnits()) do @@ -1075,9 +1053,6 @@ local function reInitialize() end end ---local spec, fullview = Spring.GetSpectatingState() -- already defined -local myAllyTeamID = Spring.GetMyAllyTeamID() - function widget:PlayerChanged(playerID) local currentspec, currentfullview = Spring.GetSpectatingState() local currentAllyTeamID = Spring.GetMyAllyTeamID() diff --git a/luaui/Widgets/gfx_bloom_shader_deferred.lua b/luaui/Widgets/gfx_bloom_shader_deferred.lua index 40a55884505..7c9186dc6ba 100644 --- a/luaui/Widgets/gfx_bloom_shader_deferred.lua +++ b/luaui/Widgets/gfx_bloom_shader_deferred.lua @@ -572,6 +572,7 @@ local function Bloom() df = df + 1 gl.DepthMask(false) gl.Color(1, 1, 1, 1) + gl.Culling(true) glUseShader(brightShader) glUniform( brightShaderIllumLoc, illumThreshold) @@ -633,6 +634,7 @@ local function Bloom() gl.Blending("reset") gl.DepthMask(false) --"BK OpenGL state resets", was true + gl.Culling(false) end function widget:DrawWorld() diff --git a/luaui/Widgets/gfx_deferred_rendering_GL4.lua b/luaui/Widgets/gfx_deferred_rendering_GL4.lua index c0ed27ccc23..e7690c4222c 100644 --- a/luaui/Widgets/gfx_deferred_rendering_GL4.lua +++ b/luaui/Widgets/gfx_deferred_rendering_GL4.lua @@ -9,7 +9,8 @@ function widget:GetInfo() date = "2022.06.10", license = "Lua code is GPL V2, GLSL is (c) Beherith (mysterme@gmail.com)", layer = -99999990, - enabled = true + enabled = true, + depends = {'gl4'}, } end @@ -110,7 +111,7 @@ local cursorLightParams = { r = 1, g = 1, b = 1, a = 0.1, -- (alpha is set elsewhere) color2r = 0, color2g = 0, color2b = 0, colortime = 0, -- point lights only, colortime in seconds for unit-attache modelfactor = 0.3, specular = 0.7, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 + lifetime = 0, sustain = 0, aninmtype = 0 -- unused } } @@ -130,7 +131,7 @@ local playerCursorLightParams = { r = 1, g = 0.8, b = 0.6, a = 0.1, -- (alpha is set elsewhere) color2r = 0, color2g = 0, color2b = 0, colortime = 0, -- point lights only, colortime in seconds for unit-attache modelfactor = 0.3, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 8 + lifetime = 0, sustain = 0, aninmtype = 0 -- unused } } @@ -198,16 +199,13 @@ local shaderConfig = { SURFACECOLORMODULATION = 0.05, -- This specifies how much the lit surfaces color affects direct light blending, 0 is does not effect it, 1.0 is full effect BLEEDFACTOR = 0.15, -- How much oversaturated color channels will bleed into other color channels. VOIDWATER = gl.GetMapRendering("voidWater") and 1 or 0, - SCREENSPACESHADOWS = 1, -- set to nil to disable completely } local radiusMultiplier = 1.0 -local screenSpaceShadows = 2 local intensityMultiplier = 1.0 -- the 3d noise texture used for this shader local noisetex3dcube = "LuaUI/images/noisetextures/noise64_cube_3.dds" -local blueNoise2D = "LuaUI/images/noisetextures/blue_noise_64.tga" --[[ local examplePointLight = { @@ -220,12 +218,12 @@ local examplePointLight = { dirx = 0, diry = 0, dirz = 1, theta = 0.5, -- cone lights only, specify direction and half-angle in radians pos2x = 100, pos2y = 100, pos2z = 100, -- beam lights only, specifies the endpoint of the beam modelfactor = 1, specular = 1, scattering = 1, lensflare = 1, - lifetime = 0, sustain = 1, selfshadowing = 0 + lifetime = 0, sustain = 1, aninmtype = 0 -- unused } ]]-- ------------------------------ Debug switches ------------------------------ -local autoupdate = true +local autoupdate = false local debugproj = false local addrandomlights = false local skipdraw = false @@ -275,7 +273,7 @@ local lightParamKeyOrder = { -- This table is a 'quick-ish' way of building the dirx = 5, diry = 6, dirz = 7, theta = 8, -- specify direction and half-angle in radians pos2x = 5, pos2y = 6, pos2z = 7, -- beam lights only, specifies the endpoint of the beam modelfactor = 13, specular = 14, scattering = 15, lensflare = 16, - lifetime = 18, sustain = 19, selfshadowing = 20, -- selfshadowing unused + lifetime = 18, sustain = 19, animtype = 20, -- animtype unused -- NOTE THERE ARE 4 MORE UNUSED SLOTS HERE RESERVED FOR FUTURE USE! -- Nope, beherith ate these like a greedy boy color2r = 21, color2g = 22, color2b = 23, colortime = 24, -- point lights only, colortime in seconds for unit-attached @@ -312,10 +310,8 @@ local shaderSourceCache = { mapDiffuse = 6, modelDiffuse = 7, noise3DCube = 8, - blueNoise = 9, --heightmapTex = 9, --mapnormalsTex = 10, - screenSpaceShadows = 16, }, uniformFloat = { pointbeamcone = 0, @@ -332,7 +328,7 @@ local testprojlighttable = {0,16,0,200, --pos + radius 0.25, 0.25,0.125, 5, -- color2, colortime 1.0,1.0,0.5,0.5, -- RGBA 0.1,1,0.25,1, -- modelfactor_specular_scattering_lensflare - 0,0,200,0, -- spawnframe, lifetime (frames), sustain (frames), selfshadowing + 0,0,200,0, -- spawnframe, lifetime (frames), sustain (frames), animtype 0,0,0,0, -- color2 0, -- pieceIndex 0,0,0,0 -- instData always 0! @@ -423,6 +419,8 @@ local function InitializeLight(lightTable, unitID) for paramname, tablepos in pairs(lightParamKeyOrder) do lightparams[tablepos] = lightTable.lightConfig[paramname] or lightparams[tablepos] end + lightparams[lightParamKeyOrder.radius] = lightparams[lightParamKeyOrder.radius] + lightparams[lightParamKeyOrder.a] = lightparams[lightParamKeyOrder.a] lightparams[lightParamKeyOrder.lifetime] = math.floor( lightparams[lightParamKeyOrder.lifetime] ) lightTable.lightParamTable = lightparams lightTable.lightConfig = nil -- never used again after initialization @@ -532,10 +530,10 @@ end ---@param spawnframe float the gameframe the light was spawned in (for anims, in frames, default current game frame) ---@param lifetime float how many frames the light will live, with decreasing brightness ---@param sustain float how much sustain time the light will have at its original brightness (in game frames) ----@param selfshadowing int what further type of animation will be used (0 is default 1 is for screen space shadow) +---@param animtype int what further type of animation will be used ---@return instanceID for future reuse local function AddPointLight(instanceID, unitID, pieceIndex, targetVBO, px_or_table, py, pz, radius, r,g,b,a, r2,g2,b2, colortime, - modelfactor, specular, scattering, lensflare, spawnframe, lifetime, sustain, selfshadowing) + modelfactor, specular, scattering, lensflare, spawnframe, lifetime, sustain, animtype) if instanceID == nil then autoLightInstanceID = autoLightInstanceID + 1 @@ -568,7 +566,7 @@ local function AddPointLight(instanceID, unitID, pieceIndex, targetVBO, px_or_ta lightparams[spawnFramePos] = spawnframe or gameFrame lightparams[18] = lifetime or 0 lightparams[19] = sustain or 1 - lightparams[20] = selfshadowing or 0 + lightparams[20] = animtype or 0 lightparams[21] = r2 or 0 lightparams[22] = g2 or 0 lightparams[23] = b2 or 0 @@ -648,10 +646,10 @@ end ---@param spawnframe float the gameframe the light was spawned in (for anims, in frames, default current game frame) ---@param lifetime float how many frames the light will live, with decreasing brightness ---@param sustain float how much sustain time the light will have at its original brightness (in game frames) ----@param selfshadowing int what further type of animation will be used +---@param animtype int what further type of animation will be used ---@return instanceID for future reuse local function AddBeamLight(instanceID, unitID, pieceIndex, targetVBO, px_or_table, py, pz, radius, r,g,b,a, sx, sy, sz, r2, colortime, - modelfactor, specular, scattering, lensflare, spawnframe, lifetime, sustain, selfshadowing) + modelfactor, specular, scattering, lensflare, spawnframe, lifetime, sustain, animtype) if instanceID == nil then autoLightInstanceID = autoLightInstanceID + 1 @@ -684,7 +682,7 @@ local function AddBeamLight(instanceID, unitID, pieceIndex, targetVBO, px_or_tab lightparams[spawnFramePos] = spawnframe or gameFrame lightparams[18] = lifetime or 0 lightparams[19] = sustain or 1 - lightparams[20] = selfshadowing or 0 + lightparams[20] = animtype or 0 lightparams[21] = 0 --unused lightparams[22] = 0 --unused lightparams[23] = 0 --unused @@ -730,10 +728,10 @@ end ---@param spawnframe float the gameframe the light was spawned in (for anims, in frames, default current game frame) ---@param lifetime float how many frames the light will live, with decreasing brightness ---@param sustain float how much sustain time the light will have at its original brightness (in game frames) ----@param selfshadowing int what further type of animation will be used +---@param animtype int what further type of animation will be used ---@return instanceID for future reuse local function AddConeLight(instanceID, unitID, pieceIndex, targetVBO, px_or_table, py, pz, radius, r,g,b,a, dx,dy,dz,theta, colortime, - modelfactor, specular, scattering, lensflare, spawnframe, lifetime, sustain, selfshadowing) + modelfactor, specular, scattering, lensflare, spawnframe, lifetime, sustain, animtype) if instanceID == nil then autoLightInstanceID = autoLightInstanceID + 1 @@ -765,11 +763,11 @@ local function AddConeLight(instanceID, unitID, pieceIndex, targetVBO, px_or_tab lightparams[spawnFramePos] = spawnframe or gameFrame lightparams[18] = lifetime or 0 lightparams[19] = sustain or 1 - lightparams[20] = selfshadowing or 0 - lightparams[21] = 0 -- RESERVED - lightparams[22] = 0 --RESERVED - lightparams[23] = 0 --RESERVED - lightparams[24] = 0 --RESERVED + lightparams[20] = animtype or 0 + lightparams[21] = 0 -- unused + lightparams[22] = 0 --unused + lightparams[23] = 0 --unused + lightparams[24] = 0 --unused lightparams[pieceIndexPos] = pieceIndex or 0 else lightparams = px_or_table @@ -1059,7 +1057,6 @@ function widget:VisibleUnitsChanged(extVisibleUnits, extNumVisibleUnits) visibleUnits = {} for unitID, unitDefID in pairs(extVisibleUnits) do - visibleUnits[unitID] = unitDefID AddStaticLightsForUnit(unitID, unitDefID, true, "VisibleUnitsChanged") -- add them with noUpload = true end uploadAllElements(unitPointLightVBO) -- upload them all @@ -1249,7 +1246,6 @@ end function widget:FeatureCreated(featureID, noUpload) if type(noUpload) ~= 'boolean' then noUpload = nil end -- TODO: Allow team-colored feature lights by getting teamcolor and putting it into lightCacheTable - --Spring.Echo("FeatureCreated", featureID, allyteam, featureDefLights[featureDefID]) local featureDefID = Spring.GetFeatureDefID(featureID) if featureDefLights[featureDefID] then for lightname, lightTable in pairs(featureDefLights[featureDefID]) do @@ -1521,29 +1517,12 @@ function widget:DrawWorld() -- We are drawing in world space, probably a bad ide local alt, ctrl = Spring.GetModKeyState() local devui = (Spring.GetConfigInt('DevUI', 0) == 1) - if autoupdate and alt and ctrl and (isSinglePlayer or spec) and devui then - -- draw a full-screen black quad first! - local camX, camY, camZ = Spring.GetCameraPosition() - local camDirX,camDirY,camDirZ = Spring.GetCameraDirection() - glBlending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - gl.Culling(GL.BACK) - gl.DepthTest(false) - gl.DepthMask(false) --"BK OpenGL state resets", default is already false, could remove - gl.Color(0,0,0,1) - gl.PushMatrix() - gl.Color(0,0,0,1.0) - gl.Translate(camX+(camDirX*360),camY+(camDirY*360),camZ+(camDirZ*360)) - gl.Billboard() - gl.Rect(-5000, -5000, 5000, 5000) - gl.PopMatrix() - end - - if autoupdate and ctrl and (not alt) and (isSinglePlayer or spec) and devui then + if autoupdate and ctrl and (isSinglePlayer or spec) and devui then glBlending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) else glBlending(GL.SRC_ALPHA, GL.ONE) end - --if autoupdate and alt and (not ctrl) and (isSinglePlayer or spec) and devui then return end + if autoupdate and alt and (isSinglePlayer or spec) and devui then return end gl.Culling(GL.BACK) gl.DepthTest(false) @@ -1557,20 +1536,12 @@ function widget:DrawWorld() -- We are drawing in world space, probably a bad ide glTexture(6, "$map_gbuffer_difftex") glTexture(7, "$model_gbuffer_difftex") glTexture(8, noisetex3dcube) - glTexture(9, blueNoise2D) deferredLightShader:Activate() deferredLightShader:SetUniformFloat("nightFactor", nightFactor) deferredLightShader:SetUniformFloat("intensityMultiplier", intensityMultiplier) deferredLightShader:SetUniformFloat("radiusMultiplier", radiusMultiplier) - - -- As the setting goes from 0 to 4, map to 0,8,16,32,64 - local screenSpaceShadowSampleCount = 0 - if screenSpaceShadows > 0 then - screenSpaceShadowSampleCount = math.min(64, math.floor( math.pow(2, screenSpaceShadows) * 4) ) - end - deferredLightShader:SetUniformInt("screenSpaceShadows", screenSpaceShadowSampleCount) --Spring.Echo(windX, windZ) @@ -1706,16 +1677,9 @@ function widget:Initialize() WG['lightsgl4'].RadiusMultiplier = function(value) radiusMultiplier = value end - WG['lightsgl4'].ScreenSpaceShadows = function(value) - screenSpaceShadows = value - end WG['lightsgl4'].ShowPlayerCursorLight = function(value) showPlayerCursorLight = value - -- Remove the player's cursor light on disabling this feature - if not showPlayerCursorLight and cursorPointLightVBO.instanceIDtoIndex["PLAYERCURSOR"] then - popElementInstance(cursorPointLightVBO, "PLAYERCURSOR") - end end WG['lightsgl4'].PlayerCursorLightRadius = function(value) playerCursorLightRadius = value @@ -1733,19 +1697,12 @@ function widget:Initialize() widgetHandler:RegisterGlobal('UnitScriptLight', UnitScriptLight) end - -if autoupdate then - function widget:DrawScreen() - if deferredLightShader.DrawPrintf then deferredLightShader.DrawPrintf() end - end -end --------------------------- Ingame Configurables ------------------- function widget:GetConfigData(_) -- Called by RemoveWidget local savedTable = { intensityMultiplier = intensityMultiplier, radiusMultiplier = radiusMultiplier, - screenSpaceShadows = screenSpaceShadows, showPlayerCursorLight = showPlayerCursorLight, playerCursorLightRadius = playerCursorLightRadius, playerCursorLightBrightness = playerCursorLightBrightness, @@ -1760,9 +1717,6 @@ function widget:SetConfigData(data) -- Called on load (and config change), just if data.radiusMultiplier ~= nil then radiusMultiplier = data.radiusMultiplier end - if data.screenSpaceShadows ~= nil then - screenSpaceShadows = data.screenSpaceShadows - end if data.showPlayerCursorLight ~= nil then showPlayerCursorLight = data.showPlayerCursorLight end diff --git a/luaui/Widgets/gfx_distortion_gl4.lua b/luaui/Widgets/gfx_distortion_gl4.lua deleted file mode 100644 index 31cc5345cc8..00000000000 --- a/luaui/Widgets/gfx_distortion_gl4.lua +++ /dev/null @@ -1,1296 +0,0 @@ --------------------------------------------------------------------------------- - -function widget:GetInfo() - return { - name = "Distortion GL4", - version = 3, - desc = "Renders screen-space distortion effects", - author = "Beherith", - date = "2022.06.10", - license = "Lua code is GPL V2, GLSL is (c) Beherith (mysterme@gmail.com)", - layer = -999999999, -- should be the last call of DrawWorld - enabled = true - } -end - --------------------------------- Notes, TODO ---------------------------------- -do --- --- Rendering passes: --- 1. Render all distortion effects to a screen-sized buffer, DistortionTexture --- 1.1 Call widget:DrawDistortion(textureset) --- --- 2. Perform the distortion pass, - -- inputs are DistortionTexture, Depth Buffers, ScreenCopy - -- Output is the final screen --- Perform a compression pass on distortionParams, culling idents -end - ------------------------------ Localize for optmization ------------------------------------ -local glBlending = gl.Blending -local glTexture = gl.Texture - - --- Strong: -local spGetProjectilePosition = Spring.GetProjectilePosition -local spGetProjectileVelocity = Spring.GetProjectileVelocity -local spGetProjectileType = Spring.GetProjectileType -local spGetPieceProjectileParams = Spring.GetPieceProjectileParams -local spGetProjectileDefID = Spring.GetProjectileDefID -local spGetGroundHeight = Spring.GetGroundHeight -local spIsSphereInView = Spring.IsSphereInView -local spGetUnitPosition = Spring.GetUnitPosition -local spGetUnitIsDead = Spring.GetUnitIsDead -local spValidUnitID = Spring.ValidUnitID - - --- Weak: -local spIsGUIHidden = Spring.IsGUIHidden - -local math_max = math.max -local math_ceil = math.ceil - -local unitName = {} -for udid, ud in pairs(UnitDefs) do - unitName[udid] = ud.name -end - ---------------------------------------------------------------------------------- ------------------------------- Debug switches ------------------------------ -local autoupdate = true -local debugproj = false -local skipdraw = false - ------------------------------- Distortion and Shader configurations ------------------ -local unitDefDistortions -local featureDefDistortions -local unitEventDistortions -- Table of distortions per unitDefID -local muzzleFlashDistortions -- one distortion per weaponDefID -local projectileDefDistortions -- one distortion per weaponDefID -local explosionDistortions -- one distortion per weaponDefID -local gibDistortion -- one distortion for all pieceprojectiles - -local isSinglePlayer = Spring.Utilities.Gametype.IsSinglePlayer() - -local shaderConfig = { - VOIDWATER = gl.GetMapRendering("voidWater") and 1 or 0, - CHROMATIC_ABERRATION = 1.02, -- How much chromatic aberration to apply to the distortion, set to nil to disable - DEBUGCOMBINER = autoupdate and 1 or 0, -- 1 is debug mode, 0 is normal mode - UNIFORMSBUFFERCOPY = nil, -- enable this for experimental unit uniforms buffer copy -} - -local radiusMultiplier = 1.0 -local intensityMultiplier = 1.0 - --- the 3d noise texture used for this shader -local noisetex3dcube = "LuaUI/images/noisetextures/noise64_cube_3.dds" - ------------------------------- Data structures and management variables ------------ - --- These will contain 'global' type distortions, ones that dont get updated every frame -local pointDistortionVBO = {} -- an instanceVBOTable -local coneDistortionVBO = {} -- an instanceVBOTable -local beamDistortionVBO = {} -- an instanceVBOTable -local distortionVBOMap -- a table of the above 3, keyed by distortion type, {point = pointDistortionVBO, ...} - --- These contain the unitdef defined, cob-instanced and unit event based distortions -local unitPointDistortionVBO = {} -- an instanceVBOTable, with unit-attachment -local unitConeDistortionVBO = {} -- an instanceVBOTable -local unitBeamDistortionVBO = {} -- an instanceVBOTable -local unitDistortionVBOMap -- a table of the above 3, keyed by distortion type, {point = unitPointDistortionVBO, ...} - -local unitAttachedDistortions = {} -- this is a table mapping unitID's to all their attached instanceIDs and vbos - --{unitID = { instanceID = targetVBO, ... }} -local visibleUnits = {} -- this is a proxy for the widget callins, used to ensure we dont add unitscriptdistortions to units that are not visible - --- these will be separate, as they need per-frame updates! -local projectilePointDistortionVBO = {} -- for plasma balls -local projectileBeamDistortionVBO = {} -- for lasers -local projectileConeDistortionVBO = {} -- for rockets -local projectileDistortionVBOMap -- a table of the above 3, keyed by distortion type - -local distortionRemoveQueue = {} -- stores distortions that have expired life {gameframe = {distortionIDs ... }} - -local unitDefPeiceMapCache = {} -- maps unitDefID to piecemap - -local distortionParamTableSize = 29 -local distortionCacheTable = {} -- this is a reusable table cache for saving memory later on -for i = 1, distortionParamTableSize do distortionCacheTable[i] = 0 end -local pieceIndexPos = 25 -local spawnFramePos = 17 -distortionCacheTable[13] = 1 --modelfactor_specular_scattering_lensflare -distortionCacheTable[14] = 1 -distortionCacheTable[15] = 1 -distortionCacheTable[16] = 1 - -local distortionEffectTypes = { - heatDistortion = 0, - airShockwave = 1, - groundShockwave = 2, - airJet = 3, - gravityLens = 4, - fusionSphere = 5, - cloakDistortion = 6, - shieldSphere = 7, - magnifier = 8, - twirl = 10, - motionBlur = 11, -} - -local distortionParamKeyOrder = { -- This table is a 'quick-ish' way of building the lua array from human-readable distortion parameters - -- worldposrad: - posx = 1, posy = 2, posz = 3, radius = 4, - - -- worldposrad2: - dirx = 5, diry = 6, dirz = 7, theta = 8, -- cones: specify direction and half-angle in radians - pos2x = 5, pos2y = 6, pos2z = 7, -- beam distortions only, specifies the endpoint of the beam - - - -- baseparams - yoffset = 9, -- the offset along the y axis for this effect - effectStrength = 10, -- Default 1, multiply with any effect's final strength - startRadius = 11, -- Defaults to match radius, multiply with any effect's final radius - unused = 12, - - -- universalParams - noiseStrength = 13, noiseScaleSpace = 14, distanceFalloff = 15, onlyModelMap = 16, - - -- lifeParams: - --spawnFrame = 17, is reserved! - lifeTime = 18, rampUp = 19, decay = 20, - - -- effectParams - effectParam1 = 21, - riseRate = 21, -- note how riseRate is identical to effectParam1 for clarity - shockWidth = 21, -- note how width is identical to effectParam1 for clarity - magnificationRate = 21, - - effectParam2 = 22, --note how refractiveIndex is identical to effectParam2 for clarity - refractiveIndex = 22, - - windAffected = 23, effectType = 24, - --color2r = 21, color2g = 22, color2b = 23, colortime = 24, -- point distortions only, colortime in seconds for unit-attached -} - -local autoDistortionInstanceID = 128000 -- as MAX_PROJECTILES = 128000, so they get unique ones - - -local gameFrame = 0 - -local trackedProjectiles = {} -- used or finding out which projectiles can be culled {projectileID = updateFrame, ...} -local trackedProjectileTypes = {} -- we have to track the types [point, distortion, cone] of projectile distortions for efficient updates -local lastGameFrame = -2 - - -local luaShaderDir = "LuaUI/Widgets/Include/" -local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") -VFS.Include(luaShaderDir.."instancevbotable.lua") - -local deferredDistortionShader = nil - -local distortionShaderSourceCache = { - shaderName = 'Deferred Distortions GL4', - vssrcpath = "LuaUI/Widgets/Shaders/distortion_gl4.vert.glsl", - fssrcpath = "LuaUI/Widgets/Shaders/distortion_gl4.frag.glsl", - shaderConfig = shaderConfig, - uniformInt = { - mapDepths = 0, - modelDepths = 1, - mapNormals = 2, - modelNormals = 3, - mapDiffuse = 4, - modelDiffuse = 5, - noise3DCube = 6, - }, - uniformFloat = { - pointbeamcone = 0, - --fadeDistance = 3000, - attachedtounitID = 0, - nightFactor = 1.0, - windXZ = {0,0}, - radiusMultiplier = 1.0, - intensityMultiplier = 1.0, - }, -} - - -local numAddDistortions = 0 -- how many times AddDistortion was called - -local spec = Spring.GetSpectatingState() - -local vsx, vsy, vpx, vpy -local DistortionTexture -- RGBA 8bit -local ScreenCopy -- RGBA 8bit - -local screenDistortionShader = nil -local screenDistortionShaderSourceCache = { - shaderName = 'ScreenDistortionShader GL4', - vssrcpath = "LuaUI/Widgets/Shaders/screen_distortion_combine_gl4.vert.glsl", - fssrcpath = "LuaUI/Widgets/Shaders/screen_distortion_combine_gl4.frag.glsl", - shaderConfig = shaderConfig, - uniformInt = { - mapDepths = 0, - modelDepths = 1, - screenCopyTexture = 2, - distortionTexture = 3, - }, - uniformFloat = { - distortionStrength = 1.0, - }, -} - -local fullScreenQuadVAO = nil ----------------------- INITIALIZATION FUNCTIONS ---------------------------------- - - -local function goodbye(reason) - Spring.Echo('Deferred Distortions GL4 exiting:', reason) - widgetHandler:RemoveWidget() -end - -local function createDistortionInstanceVBO(vboLayout, vertexVBO, numVertices, indexVBO, VBOname, unitIDattribID) - local targetDistortionVBO = makeInstanceVBOTable( vboLayout, 16, VBOname, unitIDattribID) - if vertexVBO == nil or targetDistortionVBO == nil then goodbye("Failed to make "..VBOname) end - targetDistortionVBO.vertexVBO = vertexVBO - targetDistortionVBO.numVertices = numVertices - targetDistortionVBO.indexVBO = indexVBO - targetDistortionVBO.VAO = makeVAOandAttach(targetDistortionVBO.vertexVBO, targetDistortionVBO.instanceVBO, targetDistortionVBO.indexVBO) - return targetDistortionVBO -end - -function widget:ViewResize() - vsx, vsy, vpx, vpy = Spring.GetViewGeometry() - if ScreenCopy then gl.DeleteTexture(ScreenCopy) end - ScreenCopy = gl.CreateTexture(vsx , vsy, { - border = false, - min_filter = GL.LINEAR, - mag_filter = GL.LINEAR, - wrap_s = GL.CLAMP, - wrap_t = GL.CLAMP, - }) - local GL_RGBA16F_ARB = 0x881A - --local GL_DEPTH_COMPONENT32 = 0x81A7 - if DistortionTexture then gl.DeleteTexture(DistortionTexture) end - DistortionTexture = gl.CreateTexture(vsx , vsy, { - border = false, - format = GL_RGBA16F_ARB, - min_filter = GL.NEAREST, - mag_filter = GL.NEAREST, - wrap_s = GL.CLAMP, - wrap_t = GL.CLAMP, - fbo = true, - }) - if not ScreenCopy then Spring.Echo("Distortions GL4 Manager failed to create a ScreenCopy") return false end - if not DistortionTexture then Spring.Echo("ScreenCopy Manager failed to create a DistortionTexture") return false end - return true -end - -local function initGL4() - if not widget:ViewResize() then - goodbye("Failed to CreateTexture for Distortions GL4") - return false - end - - deferredDistortionShader = LuaShader.CheckShaderUpdates(distortionShaderSourceCache, 0) - if not deferredDistortionShader then - goodbye("Failed to compile Deferred Distortions GL4 shader") - return false - end - - screenDistortionShader = LuaShader.CheckShaderUpdates(screenDistortionShaderSourceCache, 0) - if not screenDistortionShader then - goodbye("Failed to compile Screen Distortion GL4 shader") - return false - end - - fullScreenQuadVAO = MakeTexRectVAO()-- -1, -1, 1, 0, 0,0,1, 0.5) - -- init the VBO - local vboLayout = { - {id = 3, name = 'worldposrad', size = 4}, - -- for spot, this is center.xyz and radius - -- for cone, this is center.xyz and height - -- for beam this is center.xyz and radiusleft - {id = 4, name = 'worldposrad2', size = 4}, - -- for spot, this is direction.xyz for unitattached, or world anim params - -- for cone, this is direction.xyz and angle in radians - -- for beam this is end.xyz and radiusright - {id = 5, name = 'baseparams', size = 4}, -- yoffset, effectStrength, startRadius, unused - {id = 6, name = 'universalParams', size = 4}, -- noiseStrength, noiseScaleSpace, distanceFalloff, onlyModelMap - {id = 7, name = 'lifeParams', size = 4}, -- spawnFrame, lifeTime, rampUp, decay - {id = 8, name = 'effectParams', size = 4}, -- effectParam1, effectParam2, windAffectd, effectType - {id = 9, name = 'pieceIndex', size = 1, type = GL.UNSIGNED_INT}, - {id = 10, name = 'instData', size = 4, type = GL.UNSIGNED_INT}, - } - - local pointVBO, numVerts, pointIndexVBO, numIndices = makeSphereVBO(8, 4, 1) -- could use an icosahedron (v12/i60/f20) maybe? - --Spring.Echo('numVerts', numVerts, numIndices) -- (v45, i144, f45) for a sphere - pointDistortionVBO = createDistortionInstanceVBO(vboLayout, pointVBO, nil, pointIndexVBO, "Point Distortion VBO") - unitPointDistortionVBO = createDistortionInstanceVBO(vboLayout, pointVBO, nil, pointIndexVBO, "Unit Point Distortion VBO", 10) - projectilePointDistortionVBO = createDistortionInstanceVBO(vboLayout, pointVBO, nil, pointIndexVBO, "Projectile Point Distortion VBO") - - local coneVBO, numConeVertices = makeConeVBO(12, 1, 1) - coneDistortionVBO = createDistortionInstanceVBO(vboLayout, coneVBO, numConeVertices, nil, "Cone Distortion VBO") - unitConeDistortionVBO = createDistortionInstanceVBO(vboLayout, coneVBO, numConeVertices, nil, "Unit Cone Distortion VBO", 10) - projectileConeDistortionVBO = createDistortionInstanceVBO(vboLayout, coneVBO, numConeVertices, nil, "Projectile Cone Distortion VBO") - - local beamVBO, numBeamVertices = makeBoxVBO(-1, -1, -1, 1, 1, 1) - beamDistortionVBO = createDistortionInstanceVBO(vboLayout, beamVBO, numBeamVertices, nil, "Beam Distortion VBO") - unitBeamDistortionVBO = createDistortionInstanceVBO(vboLayout, beamVBO, numBeamVertices, nil, "Unit Beam Distortion VBO", 10) - projectileBeamDistortionVBO = createDistortionInstanceVBO(vboLayout, beamVBO, numBeamVertices, nil, "Projectile Beam Distortion VBO") - - projectileDistortionVBOMap = { point = projectilePointDistortionVBO, beam = projectileBeamDistortionVBO, cone = projectileConeDistortionVBO, } - unitDistortionVBOMap = { point = unitPointDistortionVBO, beam = unitBeamDistortionVBO, cone = unitConeDistortionVBO, } - distortionVBOMap = { point = pointDistortionVBO, beam = beamDistortionVBO, cone = coneDistortionVBO, } - return pointDistortionVBO and unitPointDistortionVBO and coneDistortionVBO and beamDistortionVBO -end - - ----InitializeDistortion(distortionTable, unitID) ----Takes a distortion definition table, and tries to check wether its already been initialized, if not, it inits it in-place ----@param distortionTable table ----@param unitID number -local function InitializeDistortion(distortionTable, unitID) - if not distortionTable.initComplete then -- late init - -- do the table to flattable conversion, if it doesnt exist yet - if not distortionTable.distortionParamTable then -- perform correct init - local distortionparams = {} - for i = 1, distortionParamTableSize do distortionparams[i] = 0 end - if distortionTable.distortionConfig == nil then Spring.Debug.TraceFullEcho() end - for paramname, tablepos in pairs(distortionParamKeyOrder) do - if paramname == "effectType" and type(distortionTable.distortionConfig[paramname]) == 'string' then - distortionparams[tablepos] = distortionEffectTypes[distortionTable.distortionConfig[paramname]] or distortionparams[tablepos] - else - distortionparams[tablepos] = distortionTable.distortionConfig[paramname] or distortionparams[tablepos] - end - end - --distortionparams[distortionParamKeyOrder.radius] = distortionparams[distortionParamKeyOrder.radius] - --distortionparams[distortionParamKeyOrder.a] = distortionparams[distortionParamKeyOrder.a] or 1 - distortionparams[distortionParamKeyOrder.lifeTime] = math.floor( distortionparams[distortionParamKeyOrder.lifeTime] ) or 0 - distortionparams[distortionParamKeyOrder.noiseStrength] = distortionTable.distortionConfig.noiseStrength or 1 - distortionparams[distortionParamKeyOrder.noiseScaleSpace] = distortionTable.distortionConfig.noiseScaleSpace or 1 - distortionparams[distortionParamKeyOrder.distanceFalloff] = distortionTable.distortionConfig.distanceFalloff or 1 - distortionparams[distortionParamKeyOrder.effectStrength] = distortionTable.distortionConfig.effectStrength or 1 - local startRadius = distortionTable.distortionConfig.startRadius - if startRadius then - if (startRadius > 0) and (startRadius < 1 ) then - startRadius = startRadius * (distortionTable.distortionConfig.radius or 100) - end - distortionparams[distortionParamKeyOrder.startRadius] = startRadius - else - distortionparams[distortionParamKeyOrder.startRadius] = distortionTable.distortionConfig.radius or 100 - end - - --distortionparams[distortionParamKeyOrder.startRadius] = startRadius - - distortionTable.distortionParamTable = distortionparams - --distortionTable.distortionConfig = nil -- never used again after initialization - local cnt = 0 - for k,v in pairs(distortionTable.distortionParamTable) do - cnt = cnt +1 - end - if cnt ~= distortionParamTableSize then - - for k,v in pairs(distortionTable.distortionParamTable) do - Spring.Echo(k,v) - end - Spring.Echo("DistortionTable size mismatch", cnt, distortionParamTableSize) - Spring.Echo(distortionTable) - end - - end - if unitID then - local unitDefID = Spring.GetUnitDefID(unitID) - if unitDefID and not unitDefPeiceMapCache[unitDefID] then - unitDefPeiceMapCache[unitDefID] = Spring.GetUnitPieceMap(unitID) - end - local pieceMap = unitDefPeiceMapCache[unitDefID] - - if pieceMap == nil or unitDefID == nil then - return false - --Spring.Debug.TraceFullEcho(nil,nil,nil,"InitializeDistortion, pieceMap == nil") - end - - if pieceMap[distortionTable.pieceName] then -- if its not a real piece, it will default to the model worldpos! - distortionTable.pieceIndex = pieceMap[distortionTable.pieceName] - distortionTable.distortionParamTable[pieceIndexPos] = distortionTable.pieceIndex - end - --Spring.Echo(distortionname, distortionParams.pieceName, pieceMap[distortionParams.pieceName]) - end - - distortionTable.initComplete = true - end - return true -end - --------------------------------------------------------------------------------- - ----calcDistortionExpiry(targetVBO, distortionParamTable, instanceID) ----Calculates the gameframe that a distortion might expire at, and if it will, then it places it into the removal queue -local function calcDistortionExpiry(targetVBO, distortionParamTable, instanceID) - if distortionParamTable[18] <= 0 then -- lifeTime less than 0 means never expires - return nil - end - local deathtime = math_ceil(distortionParamTable[17] + distortionParamTable[18]) - if distortionRemoveQueue[deathtime] == nil then - distortionRemoveQueue[deathtime] = {} - end - distortionRemoveQueue[deathtime][instanceID] = targetVBO - return deathtime -end - ----AddDistortion(instanceID, unitID, pieceIndex, targetVBO, distortionparams, noUpload) ----Note that instanceID can be nil if an auto-generated one is OK. ----If the distortion is not attached to a unit, and its lifeTime is > 0, then it will be automatically added to the removal queue ----TODO: is spawnframe even a good idea here, as it might fuck with updates, and is the only thing that doesnt have to be changed ----@param instanceID any usually nil, supply an existing instance ID if you want to update an existing distortion, ----@param unitID nil if worldpos, supply valid unitID if you want to attach it to something ----@param pieceIndex number if worldpos, supply valid piece index if you want to attach it to something, 0 attaches to world offset ----@param targetVBO table specify which one you want it to ----@param distortionparams table a valid table of distortion parameters ----@param noUpload bool true if it shouldnt be uploaded to gpu yet ----@return instanceID for future reuse -local function AddDistortion(instanceID, unitID, pieceIndex, targetVBO, distortionparams, noUpload) - if instanceID == nil then - autoDistortionInstanceID = autoDistortionInstanceID + 1 - instanceID = autoDistortionInstanceID - end - distortionparams[spawnFramePos] = gameFrame -- this might be problematic, as we will be modifying a table - distortionparams[pieceIndexPos] = pieceIndex or 0 - --tracy.ZoneBeginN("pushElementInstance") - instanceID = pushElementInstance(targetVBO, distortionparams, instanceID, true, noUpload, unitID) - --tracy.ZoneEnd() - if distortionparams[18] > 0 then - calcDistortionExpiry(targetVBO, distortionparams, instanceID) -- This will add distortions that have >0 lifeTime to the removal queue - end - if unitID then - if unitAttachedDistortions[unitID] == nil then - unitAttachedDistortions[unitID] = {[instanceID] = targetVBO} - else - unitAttachedDistortions[unitID][instanceID] = targetVBO - end - end - numAddDistortions = numAddDistortions + 1 - return instanceID -end - ----updateDistortionPosition(distortionVBO, instanceID, posx, posy, posz, radius, p2x, p2y, p2z, theta) ----This function is for internal use only, to update the position of a distortion. ----Only use if you know the consequences of updating a VBO in-place! -local function updateDistortionPosition(distortionVBO, instanceID, posx, posy, posz, radius, p2x, p2y, p2z, theta) - local instanceIndex = distortionVBO.instanceIDtoIndex[instanceID] - if instanceIndex == nil then return nil end - instanceIndex = (instanceIndex - 1 ) * distortionVBO.instanceStep - local instData = distortionVBO.instanceData - if posx then - instData[instanceIndex + 1] = posx - instData[instanceIndex + 2] = posy - instData[instanceIndex + 3] = posz - end - if radius then instData[instanceIndex + 4] = radius end - - if p2x then - instData[instanceIndex + 5] = p2x - instData[instanceIndex + 6] = p2y - instData[instanceIndex + 7] = p2z - end - if theta then instData[instanceIndex + 8] = theta end - distortionVBO.dirty = true - return instanceIndex -end - --- multiple distortions per unitdef/piece are possible, as the distortions are keyed by distortionname - -local function AddStaticDistortionsForUnit(unitID, unitDefID, noUpload, reason) - if unitDefDistortions[unitDefID] then - if Spring.GetUnitIsBeingBuilt(unitID) then return end - local unitDefDistortion = unitDefDistortions[unitDefID] - if unitDefDistortion.initComplete ~= true then -- late init - for distortionname, distortionParams in pairs(unitDefDistortion) do - if not InitializeDistortion(distortionParams, unitID) then return end - end - unitDefDistortion.initComplete = true - end - for distortionname, distortionParams in pairs(unitDefDistortion) do - if distortionname ~= 'initComplete' then - local targetVBO = unitDistortionVBOMap[distortionParams.distortionType] - - if (not spec) and distortionParams.alliedOnly == true and Spring.IsUnitAllied(unitID) == false then return end - AddDistortion(tostring(unitID) .. distortionname, unitID, distortionParams.pieceIndex, targetVBO, distortionParams.distortionParamTable, noUpload) - end - end - end -end - ----RemoveUnitAttachedDistortions(unitID, instanceID) ----Removes all or 1 distortion attached to a unit ----@param unitID the unit to remove distortions from ----@param instanceID which distortion to remove, if nil, then all distortions will be removed ----@returns the number of distortions that got removed -local function RemoveUnitAttachedDistortions(unitID, instanceID) - local numremoved = 0 - if unitAttachedDistortions[unitID] then - if instanceID and unitAttachedDistortions[unitID][instanceID] then - popElementInstance(unitAttachedDistortions[unitID][instanceID],instanceID) - numremoved = numremoved + 1 - unitAttachedDistortions[unitID][instanceID] = nil - else - for instanceID, targetVBO in pairs(unitAttachedDistortions[unitID]) do - if targetVBO.instanceIDtoIndex[instanceID] then - numremoved = numremoved + 1 - popElementInstance(targetVBO,instanceID) - else - --Spring.Echo("Distortion attached to unit no longer is in targetVBO", unitID, instanceID, targetVBO.myName) - end - end - --Spring.Echo("Removed distortions from unitID", unitID, numremoved, successes) - unitAttachedDistortions[unitID] = nil - end - else - --Spring.Echo("RemoveUnitAttachedDistortions: No distortions attached to", unitID) - end - return numremoved -end - ----RemoveDistortion(distortionshape, instanceID, unitID) ----Remove a distortion ----@param distortionshape string 'point'|'beam'|'cone' ----@param instanceID any the ID of the distortion to remove ----@param unitID number make this non-nil to remove it from a unit ----@returns the same instanceID on success, nil if the distortion was not found -local function RemoveDistortion(distortionshape, instanceID, unitID, noUpload) - if unitID then - if unitAttachedDistortions[unitID] and unitAttachedDistortions[unitID][instanceID] then - local targetVBO = unitAttachedDistortions[unitID][instanceID] - unitAttachedDistortions[unitID][instanceID] = nil - return popElementInstance(targetVBO, instanceID) - else - Spring.Echo("RemoveDistortion tried to remove a non-existing unitdistortion", distortionshape, instanceID, unitID) - end - elseif distortionshape then - return popElementInstance(distortionVBOMap[distortionshape], instanceID) - else - Spring.Echo("RemoveDistortion tried to remove a non-existing distortion", distortionshape, instanceID, unitID) - end - return nil -end - - -local function LoadDistortionConfig() - local success, result = pcall(VFS.Include, 'luaui/configs/DistortionGL4Config.lua') - --Spring.Echo("Loading GL4 distortion config", success, result) - if success then - --Spring.Echo("Loaded GL4 distortion config") - unitDefDistortions = result.unitDefDistortions - unitEventDistortions = result.unitEventDistortions - featureDefDistortions = result.featureDefDistortions - --projectileDefDistortions = result.projectileDefDistortions - - else - Spring.Echo("Failed to load GL4 Unit distortion config", success, result) - end - - local success2, result2 = pcall(VFS.Include, 'luaui/configs/DistortionGL4WeaponsConfig.lua') - --Spring.Echo("Loading GL4 weapon distortion config", success2, result2) - if success2 then - gibDistortion = result2.gibDistortion - InitializeDistortion(gibDistortion) - - muzzleFlashDistortions = result2.muzzleFlashDistortions - for weaponID, distortionList in pairs(muzzleFlashDistortions) do - for i, distortionTable in pairs(distortionList) do - InitializeDistortion(distortionTable) - end - end - - explosionDistortions = result2.explosionDistortions - for weaponID, distortionList in pairs(explosionDistortions) do - for i, distortionTable in pairs(distortionList) do - InitializeDistortion(distortionTable) - end - end - - projectileDefDistortions = result2.projectileDefDistortions - for weaponID, distortionTable in pairs(projectileDefDistortions) do - InitializeDistortion(distortionTable) - end - else - Spring.Echo("Failed to load GL4 weapon distortion config", success2, result2) - end - return success and success2 -end - -local nightFactor = 1 --0.33 -local unitNightFactor = 1 -- applied above nightFactor default 1.2 -local adjustfornight = {'unitAmbientColor', 'unitDiffuseColor', 'unitSpecularColor','groundAmbientColor', 'groundDiffuseColor', 'groundSpecularColor' } - - -local targetable = {} -for wdid, wd in pairs(WeaponDefs) do - if wd.targetable then - targetable[wdid] = true - end -end - -function widget:VisibleExplosion(px, py, pz, weaponID, ownerID) - if targetable[weaponID] and py-7300 > Spring.GetGroundHeight(px, pz) then -- dont add distortion to (likely) intercepted explosions (mainly to curb nuke flashes) - return - end - if explosionDistortions[weaponID] then - for i, distortion in pairs(explosionDistortions[weaponID]) do - local distortionParamTable = distortion.distortionParamTable - if distortion.alwaysVisible or spIsSphereInView(px,py,pz, distortionParamTable[4]) then - local groundHeight = spGetGroundHeight(px,pz) or 1 - py = math_max(groundHeight + (distortion.yOffset or 0), py) - distortionParamTable[1] = px - distortionParamTable[2] = py - distortionParamTable[3] = pz - AddDistortion(nil, nil, nil, pointDistortionVBO, distortionParamTable) --(instanceID, unitID, pieceIndex, targetVBO, distortionparams, noUpload) - end - end - end -end - -function widget:Barrelfire(px, py, pz, weaponID, ownerID) - if muzzleFlashDistortions[weaponID] then - for i, distortion in pairs(muzzleFlashDistortions[weaponID]) do - local distortionParamTable = distortion.distortionParamTable - if distortion.alwaysVisible or spIsSphereInView(px,py,pz, distortionParamTable[4]) then - local groundHeight = spGetGroundHeight(px,pz) or 1 - distortionParamTable[1] = px - distortionParamTable[2] = py - distortionParamTable[3] = pz - AddDistortion(nil, nil, nil, pointDistortionVBO, distortionParamTable) --(instanceID, unitID, pieceIndex, targetVBO, distortionparams, noUpload) - end - end - end -end - -local function UnitScriptDistortion(unitID, unitDefID, distortionIndex, param) - Spring.Echo("UnitSCriptDistortion", unitID, unitDefID, distortionIndex, param, visibleUnits[unitID] ) - if spValidUnitID(unitID) and spGetUnitIsDead(unitID) == false and visibleUnits[unitID] and unitEventDistortions.UnitScriptDistortions[unitDefID] and unitEventDistortions.UnitScriptDistortions[unitDefID][distortionIndex] then - local distortionTable = unitEventDistortions.UnitScriptDistortions[unitDefID][distortionIndex] - if not distortionTable.alwaysVisible then - local px,py,pz = spGetUnitPosition(unitID) - if px == nil or spIsSphereInView(px,py,pz, distortionTable[4]) == false then return end - end - if (not spec) and distortionTable.alliedOnly == true and Spring.IsUnitAllied(unitID) == false then return end - if distortionTable.initComplete == nil then InitializeDistortion(distortionTable, unitID) end - local instanceID = tostring(unitID) .. "_" .. tostring(unitName[unitDefID]) .. "UnitScriptDistortion" .. tostring(distortionIndex) .. "_" .. tostring(param) - AddDistortion(instanceID, unitID, distortionTable.pieceIndex, unitDistortionVBOMap[distortionTable.distortionType], distortionTable.distortionParamTable) - end -end - -local function GetDistortionVBO(vboName) - return nil -end - - - -function widget:VisibleUnitAdded(unitID, unitDefID, unitTeam) - visibleUnits[unitID] = unitDefID - AddStaticDistortionsForUnit(unitID, unitDefID, false, "VisibleUnitAdded") -end - -function widget:VisibleUnitsChanged(extVisibleUnits, extNumVisibleUnits) - clearInstanceTable(unitPointDistortionVBO) -- clear all instances - clearInstanceTable(unitBeamDistortionVBO) -- clear all instances - clearInstanceTable(unitConeDistortionVBO) -- clear all instances - visibleUnits = {} - - for unitID, unitDefID in pairs(extVisibleUnits) do - visibleUnits[unitID] = unitDefID - AddStaticDistortionsForUnit(unitID, unitDefID, true, "VisibleUnitsChanged") -- add them with noUpload = true - end - uploadAllElements(unitPointDistortionVBO) -- upload them all - uploadAllElements(unitBeamDistortionVBO) -- upload them all - uploadAllElements(unitConeDistortionVBO) -- upload them all -end - -function widget:VisibleUnitRemoved(unitID) -- remove all the distortions for this unit - --if debugmode then Spring.Debug.TraceEcho("remove",unitID,reason) end - RemoveUnitAttachedDistortions(unitID) - visibleUnits[unitID] = nil -end - -function widget:Shutdown() - -- TODO: delete the VBOs and shaders like a good boy - WG['distortionsgl4'] = nil - widgetHandler:DeregisterGlobal('AddDistortion') - widgetHandler:DeregisterGlobal('RemoveDistortion') - - widgetHandler:DeregisterGlobal('UnitScriptDistortion') - - deferredDistortionShader:Delete() - local ram = 0 - for distortiontype, vbo in pairs(unitDistortionVBOMap) do ram = ram + vbo:Delete() end - for distortiontype, vbo in pairs(projectileDistortionVBOMap) do ram = ram + vbo:Delete() end - for distortiontype, vbo in pairs(distortionVBOMap) do ram = ram + vbo:Delete() end - - --Spring.Echo("distortionGL4 ram usage MB = ", ram / 1000000) - --Spring.Echo("featureDefDistortions", table.countMem(featureDefDistortions)) - --Spring.Echo("unitEventDistortions", table.countMem(unitEventDistortions)) - --Spring.Echo("unitDefDistortions", table.countMem(unitDefDistortions)) - --Spring.Echo("projectileDefDistortions", table.countMem(projectileDefDistortions)) - --Spring.Echo("explosionDistortions", table.countMem(explosionDistortions)) - - -- Note, these must be nil'ed manually, because - -- tables included from VFS.Include dont get GC'd unless specifically nil'ed - unitDefDistortions = nil - featureDefDistortions = nil - unitEventDistortions = nil - muzzleFlashDistortions = nil - projectileDefDistortions = nil - explosionDistortions = nil - gibDistortion = nil - - --collectgarbage("collect") - --collectgarbage("collect") - -end - -local windX = 0 -local windZ = 0 - -function widget:GameFrame(n) - gameFrame = n - local windDirX, _, windDirZ, windStrength = Spring.GetWind() - --windStrength = math.min(20, math.max(3, windStrength)) - --Spring.Echo(windDirX,windDirZ,windStrength) - windX = windX + windDirX * 0.016 -- this is not smooth, should be smoothed on update with timeOffset! - windZ = windZ + windDirZ * 0.016 - if distortionRemoveQueue[n] then - for instanceID, targetVBO in pairs(distortionRemoveQueue[n]) do - if targetVBO.instanceIDtoIndex[instanceID] then - --Spring.Echo("removing dead distortion", targetVBO.usedElements, 'id:', instanceID) - popElementInstance(targetVBO, instanceID) - end - end - distortionRemoveQueue[n] = nil - end -end - --- This should simplify adding all kinds of events --- You are permitted to define as many distortions as you wish, but its probably stupid to do so. -local function eventDistortionSpawner(eventName, unitID, unitDefID, teamID) - if spValidUnitID(unitID) and spGetUnitIsDead(unitID) == false and unitEventDistortions[eventName] then - if unitEventDistortions[eventName] then - -- get the default event if it is defined - local distortionList = unitEventDistortions[eventName][unitDefID] or unitEventDistortions[eventName]['default'] - if distortionList then - for distortionname, distortionTable in pairs(distortionList) do - local visible = distortionTable.alwaysVisible - local px,py,pz = spGetUnitPosition(unitID) - if not visible then - if px and spIsSphereInView(px,py,pz, distortionTable[4]) then visible = true end - end - - -- bail if only for allies - if (not spec) and distortionTable.alliedOnly == true and Spring.IsUnitAllied(unitID) == false then - visible = false - end - - -- bail if unable to initialize distortion - if not distortionTable.initComplete then - if not InitializeDistortion(distortionTable, unitID) then - visible = false - end - end - - -- bail if invalid unitID wants a unit-attached distortion - if distortionTable.pieceName and (visibleUnits[unitID] == nil) then - visible = false - end - - if visible then - --if distortionTable.aboveUnit then distortionTable.distortionParamTable end - local distortionParamTable = distortionTable.distortionParamTable - if distortionTable.pieceName then - if distortionTable.aboveUnit then -- if its above the unit, then add the aboveunit offset to the units height too! - -- this is done via a quick copy of the table - for i=1, distortionParamTableSize do distortionCacheTable[i] = distortionParamTable[i] end - local unitHeight = Spring.GetUnitHeight(unitID) - if unitHeight == nil then - local losstate = Spring.GetUnitLosState(unitID) - Spring.Echo("Unitheight is nil for unitID", unitID, "unitDefName", unitName[unitDefID], eventName, distortionname, 'losstate', losstate and losstate.los) - end - - distortionCacheTable[2] = distortionCacheTable[2] + distortionTable.aboveUnit + (unitHeight or 0) - distortionParamTable = distortionCacheTable - end - AddDistortion(eventName .. tostring(unitID) .. distortionname, unitID, distortionTable.pieceIndex, unitDistortionVBOMap[distortionTable.distortionType], distortionParamTable) - else - for i=1, distortionParamTableSize do distortionCacheTable[i] = distortionParamTable[i] end - distortionCacheTable[1] = distortionCacheTable[1] + px - distortionCacheTable[2] = distortionParamTable[2] + py + ((distortionTable.aboveUnit and Spring.GetUnitHeight(unitID)) or 0) - distortionCacheTable[3] = distortionCacheTable[3] + pz - AddDistortion(eventName .. tostring(unitID) .. distortionname, nil, distortionTable.pieceIndex, distortionVBOMap[distortionTable.distortionType], distortionCacheTable) - end - end - - end - end - end - end -end - --- Below are the registered spawners for events -function widget:UnitIdle(unitID, unitDefID, teamID) -- oh man we need a sane way to handle height :D - eventDistortionSpawner("UnitIdle", unitID, unitDefID, teamID) -end -function widget:UnitFinished(unitID, unitDefID, teamID) - eventDistortionSpawner("UnitFinished", unitID, unitDefID, teamID) -end -function widget:UnitCreated(unitID, unitDefID, teamID) - eventDistortionSpawner("UnitCreated", unitID, unitDefID, teamID) -end -function widget:UnitFromFactory(unitID, unitDefID, unitTeam, factID, factDefID, userOrders) - eventDistortionSpawner("UnitFromFactory", unitID, unitDefID, teamID) -- i have no idea of the differences here - eventDistortionSpawner("UnitFromFactoryBuilder", factID, factDefID, teamID) -end -function widget:UnitDestroyed(unitID, unitDefID, teamID) -- dont do piece-attached distortions here! - eventDistortionSpawner("UnitDestroyed", unitID, unitDefID, teamID) -end -function widget:CrashingAircraft(unitID, unitDefID, teamID) - RemoveUnitAttachedDistortions(unitID) -end - --- THIS ONE DOESNT WORK, some shit is being pulled and i cant get the unit height of the unit being taken here! ---function widget:UnitTaken(unitID, unitDefID, teamID) - --eventDistortionSpawner("UnitTaken", unitID, unitDefID, teamID) ---end -function widget:UnitGiven(unitID, unitDefID, teamID) - eventDistortionSpawner("UnitGiven", unitID, unitDefID, teamID) -end -function widget:UnitCloaked(unitID, unitDefID, teamID) - eventDistortionSpawner("UnitCloaked", unitID, unitDefID, teamID) -end -function widget:UnitDecloaked(unitID, unitDefID, teamID) - eventDistortionSpawner("UnitDecloaked", unitID, unitDefID, teamID) -end -function widget:UnitMoveFailed(unitID, unitDefID, teamID) - eventDistortionSpawner("UnitMoveFailed", unitID, unitDefID, teamID) -end - -function widget:StockpileChanged(unitID, unitDefID, teamID, weaponNum, oldCount, newCount) - if newCount > oldCount then - eventDistortionSpawner("StockpileChanged", unitID, unitDefID, teamID) - end -end - -function widget:FeatureCreated(featureID,allyteam) - -- TODO: Allow team-colored feature distortions by getting teamcolor and putting it into distortionCacheTable - local featureDefID = Spring.GetFeatureDefID(featureID) - if featureDefDistortions[featureDefID] then - for distortionname, distortionTable in pairs(featureDefDistortions[featureDefID]) do - if not distortionTable.initComplete then InitializeDistortion(distortionTable) end - local px, py, pz = Spring.GetFeaturePosition(featureID) - if px then - - local distortionParamTable = distortionTable.distortionParamTable - for i=1, distortionParamTableSize do distortionCacheTable[i] = distortionParamTable[i] end - distortionCacheTable[1] = distortionCacheTable[1] + px - distortionCacheTable[2] = distortionCacheTable[2] + py - distortionCacheTable[3] = distortionCacheTable[3] + pz - AddDistortion(tostring(featureID) .. distortionname, nil, nil, distortionVBOMap[distortionTable.distortionType], distortionCacheTable) - end - end - end -end - -function widget:FeatureDestroyed(featureID) - local featureDefID = Spring.GetFeatureDefID(featureID) - if featureDefDistortions[featureDefID] then - for distortionname, distortionTable in pairs(featureDefDistortions[featureDefID]) do - RemoveDistortion(distortionTable.distortionType, tostring(featureID) .. distortionname) - end - end -end - --- Beam type projectiles are indeed an oddball, as they live for exactly 3 frames, no? - -local function PrintProjectileInfo(projectileID) - local px, py, pz = spGetProjectilePosition(projectileID) - local weapon, piece = Spring.GetProjectileType(projectileID) - local weaponDefID = weapon and Spring.GetProjectileDefID ( projectileID ) - Spring.Debug.TraceFullEcho() -end - - -local function updateProjectileDistortions(newgameframe) - local nowprojectiles = Spring.GetVisibleProjectiles() - gameFrame = Spring.GetGameFrame() - local newgameframe = true - if gameFrame == lastGameFrame then newgameframe = false end - --Spring.Echo(gameFrame, lastGameFrame, newgameframe) - lastGameFrame = gameFrame - -- turn off uploading vbo - -- one known issue regarding to every gameframe respawning distortions is to actually get them to update existing dead distortion candidates, this is very very hard to do sanely - -- BUG: having a lifeTime associated with each projectile kind of bugs out updates - local numadded = 0 - local noUpload = true - for i= 1, #nowprojectiles do - local projectileID = nowprojectiles[i] - local px, py, pz = spGetProjectilePosition(projectileID) - if px then -- we are somehow getting projectiles with no position? - local distortionType = 'point' -- default - if trackedProjectiles[projectileID] then - if newgameframe then - --update proj pos - distortionType = trackedProjectileTypes[projectileID] - if distortionType ~= 'beam' then - local dx,dy,dz = spGetProjectileVelocity(projectileID) - local instanceIndex = updateDistortionPosition(projectileDistortionVBOMap[distortionType], - projectileID, px,py,pz, nil, dx,dy,dz) - if debugproj then Spring.Echo("Updated", instanceIndex, projectileID, px, py, pz,dx,dy,dz) end - end - - end - else - -- add projectile - local weapon, piece = spGetProjectileType(projectileID) - if piece then - local explosionflags = spGetPieceProjectileParams(projectileID) - local gib = gibDistortion.distortionParamTable - gib[1] = px - gib[2] = py - gib[3] = pz - AddDistortion(projectileID, nil, nil, projectilePointDistortionVBO, gib, noUpload) - else - local weaponDefID = spGetProjectileDefID ( projectileID ) - if projectileDefDistortions[weaponDefID] and ( projectileID % (projectileDefDistortions[weaponDefID].fraction or 1) == 0 ) then - local distortionParamTable = projectileDefDistortions[weaponDefID].distortionParamTable - distortionType = projectileDefDistortions[weaponDefID].distortionType - - - distortionParamTable[1] = px - distortionParamTable[2] = py - distortionParamTable[3] = pz - if debugproj then Spring.Echo(distortionType, projectileDefDistortions[weaponDefID].distortionClassName) end - - local dx,dy,dz = spGetProjectileVelocity(projectileID) - - if distortionType == 'beam' then - distortionParamTable[5] = px + dx - distortionParamTable[6] = py + dy - distortionParamTable[7] = pz + dz - else - -- for points and cones, velocity gives the pointing dir, and for cones it gives the pos super well. - distortionParamTable[5] = dx - distortionParamTable[6] = dy - distortionParamTable[7] = dz - end - if debugproj then Spring.Echo(distortionType, px,py,pz, dx, dy,dz) end - - AddDistortion(projectileID, nil, nil, projectileDistortionVBOMap[distortionType], distortionParamTable,noUpload) - --AddDistortion(projectileID, nil, nil, projectilePointDistortionVBO, distortionParamTable) - else - --Spring.Echo("No projectile distortion defined for", projectileID, weaponDefID, px, pz) - end - end - numadded = numadded + 1 - if debugproj then Spring.Echo("Adding projdistortion", projectileID, Spring.GetProjectileName(projectileID)) end - --trackedProjectiles[] - trackedProjectileTypes[projectileID] = distortionType - end - trackedProjectiles[projectileID] = gameFrame - end - end - -- remove theones that werent updated - local numremoved = 0 - for projectileID, gf in pairs(trackedProjectiles) do - if gf < gameFrame then - -- SO says we can modify or remove elements while iterating, we just cant add - -- a possible hack to keep projectiles visible, is trying to keep getting their pos - local px, py, pz = spGetProjectilePosition(projectileID) - if px then -- this means that this projectile - local distortionType = trackedProjectileTypes[projectileID] - if newgameframe and distortionType ~= 'beam' then - local dx,dy,dz = spGetProjectileVelocity(projectileID) - updateDistortionPosition(projectileDistortionVBOMap[distortionType], - projectileID, px,py,pz, nil, dx,dy,dz ) - end - else - numremoved = numremoved + 1 - trackedProjectiles[projectileID] = nil - local distortionType = trackedProjectileTypes[projectileID] - --RemoveDistortion('point', projectileID, nil) - if projectileDistortionVBOMap[distortionType].instanceIDtoIndex[projectileID] then -- god the indirections here ... - local success = popElementInstance(projectileDistortionVBOMap[distortionType], projectileID, noUpload) - if success == nil then PrintProjectileInfo(projectileID) end - end - trackedProjectileTypes[projectileID] = nil - end - end - end - -- upload all changed elements in one go - for _, targetVBO in pairs(projectileDistortionVBOMap) do - if targetVBO.dirty then - uploadAllElements(targetVBO) - end - end - --if debugproj then - -- Spring.Echo("#points", projectilePointDistortionVBO.usedElements, '#projs', #nowprojectiles ) - --end -end - -local configCache = {lastUpdate = Spring.GetTimer()} -local function checkConfigUpdates() - if Spring.DiffTimers(Spring.GetTimer(), configCache.lastUpdate) > 0.5 then - local newconfa = VFS.LoadFile('luaui/configs/DistortionGL4Config.lua') - local newconfb = VFS.LoadFile('luaui/configs/DistortionGL4WeaponsConfig.lua') - if newconfa ~= configCache.confa or newconfb ~= configCache.confb then - LoadDistortionConfig() - if WG['unittrackerapi'] and WG['unittrackerapi'].visibleUnits then - widget:VisibleUnitsChanged(WG['unittrackerapi'].visibleUnits, nil) - end - configCache.confa = newconfa - configCache.confb = newconfb - Spring.Echo("DistortionGL4: Config updated") - end - configCache.lastUpdate = Spring.GetTimer() - end -end - -function widget:Update(dt) - if autoupdate then checkConfigUpdates() end - local tus = Spring.GetTimerMicros() - - updateProjectileDistortions() -end - -------------------------------- Drawing all the distortions --------------------------------- - - -local function DrawDistortionFunction2(gf) -- For render-to-texture - -- Set is as black with zero alpha - gl.Clear(GL.COLOR_BUFFER_BIT, 0.0, 0.0, 0.0, 0.0) - - local alt, ctrl = Spring.GetModKeyState() - - --if autoupdate and ctrl and (isSinglePlayer or spec) and (Spring.GetConfigInt('DevUI', 0) == 1) then - -- glBlending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - --else - --end - -- So we are gonna multiply each effect with its own alpha, and then add them together on the destination - -- This means we also will be ignoring the destination alpha channel. - -- The default blending function is GL_FUNC_ADD - glBlending(GL.SRC_ALPHA, GL.ONE) - --if autoupdate and alt and (isSinglePlayer or spec) and devui then return end - - gl.Culling(false) - gl.DepthTest(false) - gl.DepthMask(false) --"BK OpenGL state resets", default is already false, could remove - glTexture(0, "$map_gbuffer_zvaltex") - glTexture(1, "$model_gbuffer_zvaltex") - glTexture(2, "$map_gbuffer_normtex") - glTexture(3, "$model_gbuffer_normtex") - glTexture(4, "$map_gbuffer_difftex") - glTexture(5, "$model_gbuffer_difftex") - glTexture(6, noisetex3dcube) - - local UniformsBufferCopy = WG['api_unitbufferuniform_copy'].GetUnitUniformBufferCopy() - if not UniformsBufferCopy then - Spring.Echo("DistortionGL4: UniformsBufferCopy not found") - return - end - - UniformsBufferCopy:BindBufferRange(4) - - deferredDistortionShader:Activate() - deferredDistortionShader:SetUniformFloat("nightFactor", nightFactor) - - deferredDistortionShader:SetUniformFloat("intensityMultiplier", intensityMultiplier) - deferredDistortionShader:SetUniformFloat("radiusMultiplier", radiusMultiplier) - deferredDistortionShader:SetUniformFloat("windXZ", windX, windZ) - - - -- Fixed worldpos distortions, cursors, projectiles, world distortions - deferredDistortionShader:SetUniformFloat("attachedtounitID", 0) -- worldpos stuff - deferredDistortionShader:SetUniformFloat("pointbeamcone", 0) - - pointDistortionVBO:draw() - projectilePointDistortionVBO:draw() - - - deferredDistortionShader:SetUniformFloat("pointbeamcone", 1) - beamDistortionVBO:draw() - projectileBeamDistortionVBO:draw() - - deferredDistortionShader:SetUniformFloat("pointbeamcone", 2) - coneDistortionVBO:draw() - projectileConeDistortionVBO:draw() - - -- Unit Attached Distortions - deferredDistortionShader:SetUniformFloat("attachedtounitID", 1) - - deferredDistortionShader:SetUniformFloat("pointbeamcone", 0) - unitPointDistortionVBO:draw() - - deferredDistortionShader:SetUniformFloat("pointbeamcone", 1) - unitBeamDistortionVBO:draw() - - deferredDistortionShader:SetUniformFloat("pointbeamcone", 2) - unitConeDistortionVBO:draw() - - deferredDistortionShader:Deactivate() - - for i = 0, 6 do glTexture(i, false) end - gl.Culling(GL.BACK) - gl.DepthTest(true) - --gl.DepthMask(true) --"BK OpenGL state resets", was true but now commented out (redundant set of false states) - glBlending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) -end - --- local tf = Spring.GetTimerMicros() -function widget:DrawWorld() -- We are drawing in world space, probably a bad idea but hey - --local t0 = Spring.GetTimerMicros() - --if true then return end - if skipdraw then return end - if autoupdate then - deferredDistortionShader = LuaShader.CheckShaderUpdates(distortionShaderSourceCache, 0) or deferredDistortionShader - end - - local hasAtLeastOneDistortion = - pointDistortionVBO.usedElements > 0 or - beamDistortionVBO.usedElements > 0 or - coneDistortionVBO.usedElements > 0 or - unitPointDistortionVBO.usedElements > 0 or - unitBeamDistortionVBO.usedElements > 0 or - unitConeDistortionVBO.usedElements > 0 or - projectilePointDistortionVBO.usedElements > 0 or - projectileBeamDistortionVBO.usedElements > 0 or - projectileConeDistortionVBO.usedElements > 0 - - if (not hasAtLeastOneDistortion) then return end - - tracy.ZoneBeginN("CopyToTexture") - -- Blend the distortion: - gl.CopyToTexture(ScreenCopy, 0, 0, vpx, vpy, vsx, vsy) - tracy.ZoneEnd() - - - - gl.RenderToTexture(DistortionTexture, DrawDistortionFunction2, Spring.GetGameFrame()) - --tracy.ZoneEnd() - tracy.ZoneBeginN("CombineDistortion") - -- Combine the distortion with the scene: - if autoupdate then - screenDistortionShader = LuaShader.CheckShaderUpdates(screenDistortionShaderSourceCache, 0) or screenDistortionShader - end - - gl.Texture(0, "$map_gbuffer_zvaltex") - gl.Texture(1, "$model_gbuffer_zvaltex") - gl.Texture(2, ScreenCopy) - gl.Texture(3, DistortionTexture) - glBlending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - gl.Culling(false) -- ffs - gl.DepthTest(false) - gl.DepthMask(false) --"BK OpenGL state resets", default is already false, could remove - --Spring.Echo("Drawing Distortion") - screenDistortionShader:Activate() - - screenDistortionShader:SetUniformFloat("inverseScreenResolution", 1/vsx, 1/vsy) - screenDistortionShader:SetUniformFloat("distortionOverallStrength", 1) - fullScreenQuadVAO:DrawArrays(GL.TRIANGLES) - screenDistortionShader:Deactivate() - - for i = 0,3 do gl.Texture(i, false) end - tracy.ZoneEnd() - - - gl.DepthTest(true) - --local t1 = Spring.GetTimerMicros() - --if (Spring.GetDrawFrame() % 50 == 0 ) then - -- local dt = Spring.DiffTimers(t1,t0) - -- Spring.Echo("Deltat is ", dt,'us, so total load should be', dt * Spring.GetFPS() / 10 ,'%') - -- Spring.Echo("epoch is ", Spring.DiffTimers(t1,tf)) - --end -end - -if autoupdate then - function widget:DrawScreen() - --Spring.Echo("DrawScreen", deferredDistortionShader.DrawPrintf) - if deferredDistortionShader.DrawPrintf then deferredDistortionShader.DrawPrintf(0) end - end -end - --- Register /luaui distortionGL4stats to dump distortion statistics -function widget:TextCommand(command) - if string.find(command, "distortionGL4stats", nil, true) then - Spring.Echo(string.format("distortionGL4Stats Total = %d , (PBC=%d,%d,%d), (unitPBC=%d,%d,%d), (projPBC=%d,%d,%d)", - numAddDistortions, - pointDistortionVBO.usedElements, beamDistortionVBO.usedElements, coneDistortionVBO.usedElements, - unitPointDistortionVBO.usedElements, unitBeamDistortionVBO.usedElements, unitConeDistortionVBO.usedElements, - projectilePointDistortionVBO.usedElements, projectileBeamDistortionVBO.usedElements, projectileConeDistortionVBO.usedElements) - ) - return true - end - if string.find(command, "distortionGL4skipdraw", nil, true) then - skipdraw = not skipdraw - Spring.Echo("Deferred Rendering GL4 skipdraw set to", skipdraw) - return true - end - return false -end - -function widget:Initialize() - - Spring.Debug.TraceEcho("Initialize distortionGL4") - if Spring.GetConfigString("AllowDeferredMapRendering") == '0' or Spring.GetConfigString("AllowDeferredModelRendering") == '0' then - Spring.Echo('Distortion GL4 requires AllowDeferredMapRendering and AllowDeferredModelRendering to be enabled in springsettings.cfg!') - widgetHandler:RemoveWidget() - return - end - if not LoadDistortionConfig() then - widgetHandler:RemoveWidget() - return - end - - if initGL4() == false then return end - - local success, mapinfo = pcall(VFS.Include,"mapinfo.lua") -- load mapinfo.lua confs - - if WG['unittrackerapi'] and WG['unittrackerapi'].visibleUnits then - widget:VisibleUnitsChanged(WG['unittrackerapi'].visibleUnits, nil) - end - - for _, featureID in ipairs(Spring.GetAllFeatures()) do - widget:FeatureCreated(featureID) - end - - WG['distortionsgl4'] = {} - WG['distortionsgl4'].AddDistortion = AddDistortion - WG['distortionsgl4'].RemoveDistortion = RemoveDistortion - WG['distortionsgl4'].GetDistortionVBO = GetDistortionVBO - - WG['distortionsgl4'].IntensityMultiplier = function(value) - intensityMultiplier = value - end - WG['distortionsgl4'].RadiusMultiplier = function(value) - radiusMultiplier = value - end - - widgetHandler:RegisterGlobal('AddDistortion', WG['distortionsgl4'].AddDistortion) - widgetHandler:RegisterGlobal('RemoveDistortion', WG['distortionsgl4'].RemoveDistortion) - widgetHandler:RegisterGlobal('GetDistortionVBO', WG['distortionsgl4'].GetDistortionVBO) - - widgetHandler:RegisterGlobal('UnitScriptDistortion', UnitScriptDistortion) -end ---------------------------- Ingame Configurables ------------------- - -function widget:GetConfigData(_) -- Called by RemoveWidget - local savedTable = { - intensityMultiplier = intensityMultiplier, - radiusMultiplier = radiusMultiplier, - } - return savedTable -end - -function widget:SetConfigData(data) -- Called on load (and config change), just before Initialize! - if data.intensityMultiplier ~= nil then - intensityMultiplier = data.intensityMultiplier - end - if data.radiusMultiplier ~= nil then - radiusMultiplier = data.radiusMultiplier - end -end diff --git a/luaui/Widgets/gfx_lupsgl4_orbs.lua b/luaui/Widgets/gfx_lupsgl4_orbs.lua index 36024744086..89b3939d170 100644 --- a/luaui/Widgets/gfx_lupsgl4_orbs.lua +++ b/luaui/Widgets/gfx_lupsgl4_orbs.lua @@ -70,6 +70,13 @@ local armafusShieldSphere = table.merge(defaults, { --colormap2 = { {0.2, 0.2, 1, 0.7},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.7} }, }) +local legafusShieldSphere = table.merge(defaults, { + pos = { 0, 60, 0 }, + size = 36, + light = 4.25, + --colormap1 = { {0.9, 0.9, 1, 0.75},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 0.75} }, + --colormap2 = { {0.2, 0.2, 1, 0.7},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.75},{0.2, 0.2, 1, 0.7} }, +}) local corfusShieldSphere = table.merge(defaults, { pos = { 0, 51, 0 }, size = 23, @@ -78,6 +85,15 @@ local corfusShieldSphere = table.merge(defaults, { --colormap2 = { {0.2, 0.6, 0.2, 0.4},{0.2, 0.6, 0.2, 0.45},{0.2, 0.6, 0.2, 0.45},{0.2, 0.6, 0.2, 0.4} }, }) +local legfusShieldSphere = table.merge(defaults, { + pos = { 0, 10, 0 }, + size = 23, + light = 3.25, + --colormap1 = { {0.9, 0.9, 1, 0.75},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 1.0},{0.9, 0.9, 1, 0.75} }, + --colormap2 = { {0.2, 0.6, 0.2, 0.4},{0.2, 0.6, 0.2, 0.45},{0.2, 0.6, 0.2, 0.45},{0.2, 0.6, 0.2, 0.4} }, +}) + + local corgateShieldSphere = table.merge(defaults, { pos = { 0, 42, 0 }, size = 11, @@ -86,6 +102,14 @@ local corgateShieldSphere = table.merge(defaults, { isShield = true, }) +local corgatet3ShieldSphere = table.merge(defaults, { + pos = { 0, 75, -1 }, + size = 18, + colormap1 = { { 0.9, 0.9, 1, 0.75 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 0.75 } }, + colormap2 = { { 0.2, 0.6, 0.2, 0.4 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.4 } }, + isShield = true, +}) + local armjunoShieldSphere = table.merge(defaults, { pos = { 0, 72, 0 }, size = 13, @@ -107,6 +131,13 @@ local armgateShieldSphere = table.merge(defaults, { colormap2 = { { 0.2, 0.6, 0.2, 0.4 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.4 } }, isShield = true, }) +local armgatet3ShieldSphere = table.merge(defaults, { + pos = { 0, 42, -6 }, + size = 20, + colormap1 = { { 0.9, 0.9, 1, 0.75 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 1.0 }, { 0.9, 0.9, 1, 0.75 } }, + colormap2 = { { 0.2, 0.6, 0.2, 0.4 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.45 }, { 0.2, 0.6, 0.2, 0.4 } }, + isShield = true, +}) local UnitEffects = { ["armjuno"] = { @@ -127,10 +158,18 @@ local UnitEffects = { { class = 'ShieldSphere', options = corfusShieldSphere }, { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 50, 0 }, size = 23.5, precision = 22, repeatEffect = true } }, }, + ["legfus"] = { + { class = 'ShieldSphere', options = legfusShieldSphere }, + { class = 'ShieldJitter', options = { life = math.huge, pos = { 0, 19, 0 }, size = 23.5, precision = 22, repeatEffect = true } }, + }, ["armafus"] = { { class = 'ShieldSphere', options = armafusShieldSphere }, { class = 'ShieldJitter', options = { layer = -16, life = math.huge, pos = { 0, 60, 0 }, size = 28.5, precision = 22, repeatEffect = true } }, }, + ["legafus"] = { + { class = 'ShieldSphere', options = legafusShieldSphere }, + { class = 'ShieldJitter', options = { layer = -16, life = math.huge, pos = { 0, 60, 0 }, size = 38.5, precision = 22, repeatEffect = true } }, + }, ["resourcecheat"] = { { class = 'ShieldSphere', options = armafusShieldSphere }, { class = 'ShieldJitter', options = { layer = -16, life = math.huge, pos = { 0, 60, 0 }, size = 28.5, precision = 22, repeatEffect = true } }, @@ -141,6 +180,12 @@ local UnitEffects = { --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,42,0.0}, size=555, precision=0, strength= 0.001, repeatEffect=true}}, --{class='ShieldJitter',options={life=math.huge, pos={0,42,0}, size=20, precision=2, repeatEffect=true}}, }, + ["corgatet3"] = { + { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 75, 0 }, size = 18, precision = 22, repeatEffect = true , isShiedl } }, + { class = 'ShieldSphere', options = corgatet3ShieldSphere }, + --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,42,0.0}, size=555, precision=0, strength= 0.001, repeatEffect=true}}, + --{class='ShieldJitter',options={life=math.huge, pos={0,42,0}, size=20, precision=2, repeatEffect=true}}, + }, ["corfgate"] = { { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 42, 0 }, size = 12, precision = 22, repeatEffect = true } }, { class = 'ShieldSphere', options = corgateShieldSphere }, @@ -152,6 +197,11 @@ local UnitEffects = { { class = 'ShieldSphere', options = armgateShieldSphere }, --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,23.5,-5}, size=555, precision=0, strength=0.001, repeatEffect=true}}, }, + ["armgatet3"] = { + { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 37, -5 }, size = 21, precision = 22, repeatEffect = true } }, + { class = 'ShieldSphere', options = armgatet3ShieldSphere }, + --{class='ShieldJitter', options={delay=0,life=math.huge, pos={0,23.5,-5}, size=555, precision=0, strength=0.001, repeatEffect=true}}, + }, ["armfgate"] = { { class = 'ShieldJitter', options = { delay = 0, life = math.huge, pos = { 0, 25, 0 }, size = 15, precision = 22, repeatEffect = true } }, { class = 'ShieldSphere', options = table.merge(armgateShieldSphere, { pos = { 0, 25, 0 } }) }, @@ -475,11 +525,11 @@ out vec4 fragColor; float Fbm12(vec2 P) { const int octaves = 2; - const float lacunarity = 1.8; - const float gain = 0.80; + const float lacunarity = 1.5; + const float gain = 0.49; float sum = 0.0; - float amp = 0.8; + float amp = 1.0; vec2 pp = P; int i; @@ -505,7 +555,7 @@ out vec4 fragColor; v += noise13(p * 0.9) * 0.99; v += noise13(p * 3.99) * 0.49; v += noise13(p * 8.01) * 0.249; - v += noise13(p * 25.05) * 0.124; + v += noise13(p * 15.05) * 0.124; return v; } @@ -531,48 +581,26 @@ out vec4 fragColor; return color * t; } + + + vec3 LightningOrb2(vec2 vUv, vec3 color) { + // looks quite similar to previous, but twice as fast + float violence = (1.0 - modelPos_vs.w); + vUv.x = fract(vUv.x * 2.0); // double it + vec2 uv = NORM2SNORM(vUv); + const float strength = 0.03 + 0.1 * violence; + const float dx = 0.225; + float t = 0.0; + for (int k = -4; k < 3; ++k) { + vec2 thisUV = uv; + thisUV.x -= dx * float(k); + thisUV.y += 3 * float(k); + vec2 fbmUV = vec2(thisUV.x * 2 + time, thisUV.y + 0.3*time); + t += abs(strength / ((thisUV.x + (2.0 * Fbm12( fbmUV ) -0.95)))); + } -float mirroredRepeat(float x, float repeats) { - x *= repeats; - float i = floor(x); - float f = fract(x); - // If i is odd, mirror the fractional part - if (mod(i, 2.0) == 1.0) { - f = 1.0 - f; - } - return f; -} - -vec3 LightningOrb2(vec2 vUv, vec3 color) { - - // Example: NO fract(), but still repeating: - // vUv.x *= 3.0; - - // Or: mirror repeat for 2 tiles - vUv.x = mirroredRepeat(vUv.x, 2.0); - - // From here on, continue as you did before: - vec2 uv = NORM2SNORM(vUv); - - float violence = (1 - modelPos_vs.w); - const float strength = 0.08 + 0.4 * violence; - const float dx = 0.225; - - float t = 0.1; - for (int k = -4; k < 3; ++k) { - vec2 thisUV = uv; - thisUV.x -= dx * float(k); - thisUV.y += 2.0 * float(k); - vec2 fbmUV = vec2(thisUV.x * 1.0 + time, thisUV.y + 0.3 * time); - - // Your fract()-free or tiled/noise logic remains the same here: - t += abs(strength / (thisUV.x + (3.0 * Fbm12(fbmUV) - 1.9))); - } - - return color * t; -} - - + return color * t; + } vec3 MagicOrb(vec3 noiseVec, vec3 color) { float t = 0.0; @@ -608,7 +636,7 @@ vec3 LightningOrb2(vec2 vUv, vec3 color) { vec3 RotAroundY(vec3 p) { - float ra = -time * 0.5; + float ra = -time * 2.1; mat4 tr = mat4(cos(ra), 0.0, sin(ra), 0.0, 0.0, 1.0, 0.0, 0.0, -sin(ra), 0.0, cos(ra), 0.0, @@ -628,9 +656,8 @@ void main(void) noiseVec = RotAroundY(noiseVec); vec2 vUv = (RadialCoords(noiseVec)); vec3 col = LightningOrb2(vUv, fragColor.rgb); - fragColor.rgba = vec4(col,1.0) * 2; return; - //fragColor.rgb = max(fragColor.rgb, col * col); - //fragColor.rgb = max(fragColor.rgb, col * 2); + //fragColor.rgba = vec4(col,1.0); return; + fragColor.rgb = max(fragColor.rgb, col * col); } else if (technique_vs == 2) { // MagicOrb vec3 noiseVec = modelPos_vs.xyz; diff --git a/luaui/Widgets/gfx_norush_timer_gl4.lua b/luaui/Widgets/gfx_norush_timer_gl4.lua index ae72ea40003..e7cce21299a 100644 --- a/luaui/Widgets/gfx_norush_timer_gl4.lua +++ b/luaui/Widgets/gfx_norush_timer_gl4.lua @@ -100,7 +100,7 @@ function widget:DrawWorldPreUnit() end end - glCulling(GL.FRONT) + glCulling(true) glDepthTest(false) gl.DepthMask(false) diff --git a/luaui/Widgets/gfx_ssao.lua b/luaui/Widgets/gfx_ssao.lua index ef85e275c9d..f8691d7b608 100644 --- a/luaui/Widgets/gfx_ssao.lua +++ b/luaui/Widgets/gfx_ssao.lua @@ -20,6 +20,7 @@ function widget:GetInfo() license = "GPL", layer = 999999, enabled = not isPotatoGpu, + depends = {'gl4'}, } end diff --git a/luaui/Widgets/gfx_unit_stencil_gl4.lua b/luaui/Widgets/gfx_unit_stencil_gl4.lua index 7005bcf96ca..e82f5e1c3eb 100644 --- a/luaui/Widgets/gfx_unit_stencil_gl4.lua +++ b/luaui/Widgets/gfx_unit_stencil_gl4.lua @@ -6,7 +6,8 @@ function widget:GetInfo() date = "2022.03.05", license = "GNU GPL, v2 or later", layer = 50, - enabled = true + enabled = true, + depends = {'gl4'}, } end diff --git a/luaui/Widgets/gui_advplayerslist.lua b/luaui/Widgets/gui_advplayerslist.lua index 991c7f6d179..5cb081c2dfe 100644 --- a/luaui/Widgets/gui_advplayerslist.lua +++ b/luaui/Widgets/gui_advplayerslist.lua @@ -320,7 +320,6 @@ local widgetScale = 0 local expandDown = false local expandLeft = true -local right = true local labelOffset = 18 local separatorOffset = 4 @@ -655,11 +654,6 @@ function GeometryChange() widgetRight = vsx - (backgroundMargin * widgetScale) widgetPosX = vsx - ((widgetWidth + backgroundMargin) * widgetScale) - widgetRelRight end - if widgetRight > vsx / 2 then - right = true - else - right = false - end end local function UpdateAlliances() @@ -683,12 +677,11 @@ end local function UpdateRecentBroadcasters() recentBroadcasters = {} - for playerID, info in pairs(lastBroadcasts) do - lastTime = info[1] - if totalTime - lastTime <= listTime or playerID == lockPlayerID then - if totalTime - lastTime <= listTime then - recentBroadcasters[playerID] = totalTime - lastTime + local prevTime = info[1] + if totalTime - prevTime <= listTime or playerID == lockPlayerID then + if totalTime - prevTime <= listTime then + recentBroadcasters[playerID] = totalTime - prevTime end end end @@ -1323,7 +1316,7 @@ function UpdatePlayerResources() local energyIncome, metalIncome local displayedPlayers = 0 for playerID, _ in pairs(player) do - if (playerID < specOffset or player[playerID].ai) and player[playerID].name and not player[playerID].spec and player[playerID].team then + if (playerID < specOffset or player[playerID].ai) and player[playerID].name and not player[playerID].spec and player[playerID].team then -- maybe not filter out specs cause resigned players can still hold storage if aliveAllyTeams[player[playerID].allyteam] ~= nil and (mySpecStatus or myAllyTeamID == player[playerID].allyteam) then if (mySpecStatus and enemyListShow) or player[playerID].allyteam == myAllyTeamID then -- only keep track when its being displayed displayedPlayers = displayedPlayers + 1 @@ -1346,11 +1339,13 @@ function UpdatePlayerResources() player[playerID].energyIncome = energyIncome player[playerID].energyStorage = energyStorage player[playerID].energyShare = energyShare - player[playerID].energyConversion = Spring.GetTeamRulesParam(player[playerID].team, 'mmLevel') player[playerID].metal = metal player[playerID].metalIncome = metalIncome player[playerID].metalStorage = metalStorage player[playerID].metalShare = metalShare + if not player[playerID].spec then + player[playerID].energyConversion = Spring.GetTeamRulesParam(player[playerID].team, 'mmLevel') + end if not allyTeamMaxStorage[player[playerID].allyteam] then allyTeamMaxStorage[player[playerID].allyteam] = {} end @@ -1509,6 +1504,7 @@ function SortTeams(allyTeamID, vOffset) -- (teams are not visible as such unless they are empty or AI) local teamsList = Spring_GetTeamList(allyTeamID) for _, teamID in ipairs(teamsList) do + drawListOffset[#drawListOffset + 1] = vOffset drawList[#drawList + 1] = -1 vOffset = SortPlayers(teamID, allyTeamID, vOffset) -- adds players form the team @@ -2028,6 +2024,7 @@ end -- onlyMainList2 to only draw dynamic stuff like ping/alliances/buttons -- onlyMainList3 to only draw resources function DrawPlayer(playerID, leader, vOffset, mouseX, mouseY, onlyMainList, onlyMainList2, onlyMainList3) + player[playerID].posY = vOffset tipY = nil @@ -2236,22 +2233,12 @@ end function DrawTakeSignal(posY) if blink then -- Draws a blinking rectangle if the player of the same team left (/take option) - if right then - gl_Color(0.7, 0.7, 0.7) - gl_Texture(pics["arrowPic"]) - DrawRect(widgetPosX - 14, posY, widgetPosX, posY + 16) - gl_Color(1, 1, 1) - gl_Texture(pics["takePic"]) - DrawRect(widgetPosX - 57, posY - 15, widgetPosX - 12, posY + 32) - else - local leftPosX = widgetPosX + widgetWidth - gl_Color(0.7, 0.7, 0.7) - gl_Texture(pics["arrowPic"]) - DrawRect(leftPosX + 14, posY, leftPosX, posY + 16) - gl_Color(1, 1, 1) - gl_Texture(pics["takePic"]) - DrawRect(leftPosX + 12, posY - 15, leftPosX + 57, posY + 32) - end + gl_Color(0.7, 0.7, 0.7) + gl_Texture(pics["arrowPic"]) + DrawRect(widgetPosX - 14, posY, widgetPosX, posY + 16) + gl_Color(1, 1, 1) + gl_Texture(pics["takePic"]) + DrawRect(widgetPosX - 57, posY - 15, widgetPosX - 12, posY + 32) end end @@ -2300,6 +2287,7 @@ function DrawResources(energy, energyStorage, energyShare, energyConversion, met y2Offset = 8.6 * sizeMult end local maxStorage = (maxAllyTeamMetalStorage and maxAllyTeamMetalStorage or metalStorage) + if not maxStorage or maxStorage == 0 then return end -- protect from NaN --gl_Color(0,0,0, 0.05) --gl_Texture(false) --DrawRect(m_resources.posX + widgetPosX + paddingLeft-bordersize, posY + y1Offset+bordersize, m_resources.posX + widgetPosX + paddingLeft + (barWidth * (metalStorage/maxStorage))+bordersize, posY + y2Offset-bordersize) @@ -2626,9 +2614,14 @@ function DrawName(name, team, posY, dark, playerID, desynced) if desynced then font2:SetTextColor(1,0.45,0.45,1) font2:Print(Spring.I18N('ui.playersList.desynced'), m_name.posX + widgetPosX + 5 + xPadding + (font2:GetTextWidth(nameText)*14), posY + (5.7*playerScale) , 8, "o") - elseif player[playerID] and not player[playerID].dead and player[playerID].incomeMultiplier and player[playerID].incomeMultiplier > 1 then - font2:SetTextColor(0.5,1,0.5,1) - font2:Print('+'..math.floor((player[playerID].incomeMultiplier-1)*100)..'%', m_name.posX + widgetPosX + 5 + xPadding + (font2:GetTextWidth(nameText)*14), posY + (5.7*playerScale) , 8, "o") + elseif player[playerID] and not player[playerID].dead and player[playerID].incomeMultiplier and player[playerID].incomeMultiplier ~= 1 then + if player[playerID].incomeMultiplier > 1 then + font2:SetTextColor(0.5,1,0.5,1) + font2:Print('+'..math.floor((player[playerID].incomeMultiplier-1)*100)..'%', m_name.posX + widgetPosX + 5 + xPadding + (font2:GetTextWidth(nameText)*14), posY + (5.7*playerScale) , 8, "o") + else + font2:SetTextColor(1,0.5,0.5,1) + font2:Print(math.floor((player[playerID].incomeMultiplier-1)*100)..'%', m_name.posX + widgetPosX + 5 + xPadding + (font2:GetTextWidth(nameText)*14), posY + (5.7*playerScale) , 8, "o") + end end font2:End() @@ -2753,22 +2746,12 @@ function DrawPingCpu(pingLvl, cpuLvl, posY, spec, alpha, cpu, fps) end function DrawPoint(posY, pointtime) - if right then - gl_Color(1, 0, 0, pointtime / pointDuration) - gl_Texture(pics["arrowPic"]) - DrawRect(widgetPosX - (18*playerScale), posY, widgetPosX - (2*playerScale), posY + (14*playerScale)) - gl_Color(1, 1, 1, pointtime / pointDuration) - gl_Texture(pics["pointPic"]) - DrawRect(widgetPosX - (33*playerScale), posY - (1*playerScale), widgetPosX - (17*playerScale), posY + (15*playerScale)) - else - leftPosX = widgetPosX + widgetWidth - gl_Color(1, 0, 0, pointtime / pointDuration) - gl_Texture(pics["arrowPic"]) - DrawRect(leftPosX + (18*playerScale), posY, leftPosX + (2*playerScale), posY + (14*playerScale)) - gl_Color(1, 1, 1, pointtime / pointDuration) - gl_Texture(pics["pointPic"]) - DrawRect(leftPosX + (33*playerScale), posY - (1*playerScale), leftPosX + (17*playerScale), posY + (15*playerScale)) - end + gl_Color(1, 0, 0, pointtime / pointDuration) + gl_Texture(pics["arrowPic"]) + DrawRect(widgetPosX - (18*playerScale), posY, widgetPosX - (2*playerScale), posY + (14*playerScale)) + gl_Color(1, 1, 1, pointtime / pointDuration) + gl_Texture(pics["pointPic"]) + DrawRect(widgetPosX - (33*playerScale), posY - (1*playerScale), widgetPosX - (17*playerScale), posY + (15*playerScale)) gl_Color(1, 1, 1, 1) end @@ -2789,17 +2772,9 @@ function DrawEraser(posY, time) end function TakeTip(mouseX) - if right then - if mouseX >= widgetPosX - 57 * widgetScale and mouseX <= widgetPosX - 1 * widgetScale then - tipText = Spring.I18N('ui.playersList.takeUnits') - tipTextTime = os.clock() - end - else - local leftPosX = widgetPosX + widgetWidth - if mouseX >= leftPosX + 1 * widgetScale and mouseX <= leftPosX + 57 * widgetScale then - tipText = Spring.I18N('ui.playersList.takeUnits') - tipTextTime = os.clock() - end + if mouseX >= widgetPosX - 57 * widgetScale and mouseX <= widgetPosX - 1 * widgetScale then + tipText = Spring.I18N('ui.playersList.takeUnits') + tipTextTime = os.clock() end end @@ -2941,17 +2916,9 @@ function PingCpuTip(mouseX, pingLvl, cpuLvl, fps, gpumem, system, name, teamID, end function PointTip(mouseX) - if right then - if mouseX >= widgetPosX - 28 * widgetScale and mouseX <= widgetPosX - 1 * widgetScale then - tipText = Spring.I18N('ui.playersList.pointClickTooltip') - tipTextTime = os.clock() - end - else - local leftPosX = widgetPosX + widgetWidth - if mouseX >= leftPosX + 1 * widgetScale and mouseX <= leftPosX + 28 * widgetScale then - tipText = Spring.I18N('ui.playersList.pointClickTooltip') - tipTextTime = os.clock() - end + if mouseX >= widgetPosX - 28 * widgetScale and mouseX <= widgetPosX - 1 * widgetScale then + tipText = Spring.I18N('ui.playersList.pointClickTooltip') + tipTextTime = os.clock() end end @@ -3067,17 +3034,10 @@ function widget:MousePress(x, y, button) if m_point.active then if i > -1 and i < specOffset then if clickedPlayer.pointTime ~= nil then - if right then - if IsOnRect(x, y, widgetPosX - 33, posY - 2, widgetPosX - 17, posY + (playerOffset*playerScale)) then - --point button - Spring.SetCameraTarget(clickedPlayer.pointX, clickedPlayer.pointY, clickedPlayer.pointZ, 1) - return true - end - else - if IsOnRect(x, y, widgetPosX + widgetWidth + 17, posY - 2, widgetPosX + widgetWidth + 33, posY + (playerOffset*playerScale)) then - Spring.SetCameraTarget(clickedPlayer.pointX, clickedPlayer.pointY, clickedPlayer.pointZ, 1) - return true - end + if IsOnRect(x, y, widgetPosX - 33, posY - 2, widgetPosX - 17, posY + (playerOffset*playerScale)) then + --point button + Spring.SetCameraTarget(clickedPlayer.pointX, clickedPlayer.pointY, clickedPlayer.pointZ, 1) + return true end end end @@ -3114,17 +3074,10 @@ function widget:MousePress(x, y, button) if clickedPlayer.allyteam == myAllyTeamID then if m_take.active then if clickedPlayer.totake then - if right then - if IsOnRect(x, y, widgetPosX - 57, posY, widgetPosX - 12, posY + 17) then - --take button - Take(clickedPlayer.team, clickedPlayer.name, i) - return true - end - else - if IsOnRect(x, y, widgetPosX + widgetWidth + 12, posY, widgetPosX + widgetWidth + 57, posY + 17) then - Take(clickedPlayer.team, clickedPlayer.name, i) - return true - end + if IsOnRect(x, y, widgetPosX - 57, posY, widgetPosX - 12, posY + 17) then + --take button + Take(clickedPlayer.team, clickedPlayer.name, i) + return true end end end @@ -3187,16 +3140,9 @@ function widget:MousePress(x, y, button) if m_point.active then if clickedPlayer.pointTime ~= nil then if clickedPlayer.allyteam == myAllyTeamID then - if right then - if IsOnRect(x, y, widgetPosX - 28, posY - 1, widgetPosX - 12, posY + 17) then - Spring.SetCameraTarget(clickedPlayer.pointX, clickedPlayer.pointY, clickedPlayer.pointZ, 1) - return true - end - else - if IsOnRect(x, y, widgetPosX + widgetWidth + 12, posY - 1, widgetPosX + widgetWidth + 28, posY + 17) then - Spring.SetCameraTarget(clickedPlayer.pointX, clickedPlayer.pointY, clickedPlayer.pointZ, 1) - return true - end + if IsOnRect(x, y, widgetPosX - 28, posY - 1, widgetPosX - 12, posY + 17) then + Spring.SetCameraTarget(clickedPlayer.pointX, clickedPlayer.pointY, clickedPlayer.pointZ, 1) + return true end end end diff --git a/luaui/Widgets/gui_advplayerslist_music_new.lua b/luaui/Widgets/gui_advplayerslist_music_new.lua index ce204e2e9aa..4b9d2d0b630 100644 --- a/luaui/Widgets/gui_advplayerslist_music_new.lua +++ b/luaui/Widgets/gui_advplayerslist_music_new.lua @@ -79,10 +79,18 @@ local function ReloadMusicPlaylists() local warhighTracksNew = VFS.DirList(musicDirNew..'/warhigh', allowedExtensions) local warlowTracksNew = VFS.DirList(musicDirNew..'/warlow', allowedExtensions) local gameoverTracksNew = VFS.DirList(musicDirNew..'/gameover', allowedExtensions) - local bossFightTracksNew = VFS.DirList(musicDirNew..'/bossfight', allowedExtensions) local menuTracksNew = VFS.DirList(musicDirNew..'/menu', allowedExtensions) local loadingTracksNew = VFS.DirList(musicDirNew..'/loading', allowedExtensions) local boomboxTracksNew = VFS.DirList(musicDirNew..'/boombox', allowedExtensions) + local bossFightTracksNew = {} + if Spring.Utilities.Gametype.IsRaptors() then + table.append(bossFightTracksNew, VFS.DirList(musicDirNew..'/bossfight/raptors', allowedExtensions)) + elseif Spring.Utilities.Gametype.IsScavengers() then + table.append(bossFightTracksNew, VFS.DirList(musicDirNew..'/bossfight/scavengers', allowedExtensions)) + else + table.append(bossFightTracksNew, VFS.DirList(musicDirNew..'/bossfight/raptors', allowedExtensions)) + table.append(bossFightTracksNew, VFS.DirList(musicDirNew..'/bossfight/scavengers', allowedExtensions)) + end -- Custom Soundtrack List local musicDirCustom = 'music/custom' @@ -91,9 +99,9 @@ local function ReloadMusicPlaylists() local warlowTracksCustom = VFS.DirList(musicDirCustom..'/warlow', allowedExtensions) local warTracksCustom = VFS.DirList(musicDirCustom..'/war', allowedExtensions) local gameoverTracksCustom = VFS.DirList(musicDirCustom..'/gameover', allowedExtensions) - local bossFightTracksCustom = VFS.DirList(musicDirCustom..'/bossfight', allowedExtensions) local menuTracksCustom = VFS.DirList(musicDirCustom..'/menu', allowedExtensions) local loadingTracksCustom = VFS.DirList(musicDirCustom..'/loading', allowedExtensions) + local bossFightTracksCustom = VFS.DirList(musicDirCustom..'/bossfight', allowedExtensions) -----------------------------------SETTINGS--------------------------------------- interruptionEnabled = Spring.GetConfigInt('UseSoundtrackInterruption', 1) == 1 diff --git a/luaui/Widgets/gui_attackrange_gl4.lua b/luaui/Widgets/gui_attackrange_gl4.lua index 15437cc68a0..16600f2cbd4 100644 --- a/luaui/Widgets/gui_attackrange_gl4.lua +++ b/luaui/Widgets/gui_attackrange_gl4.lua @@ -39,9 +39,9 @@ local colorConfig = { drawInnerRings = true, -- whether to draw inner, per attack rings (very cheap) externalalpha = 0.80, -- alpha of outer rings - internalalpha = 0.06, -- alpha of inner rings - fill_alpha = 0.08, -- this is the solid color in the middle of the stencil - outer_fade_height_difference = 5500, -- this is the height difference at which the outer ring starts to fade out compared to inner rings + internalalpha = 0.20, -- alpha of inner rings + fill_alpha = 0.10, -- this is the solid color in the middle of the stencil + outer_fade_height_difference = 2500, -- this is the height difference at which the outer ring starts to fade out compared to inner rings ground = { color = { 1.0, 0.22, 0.05, 0.60 }, fadeparams = { 1500, 2200, 1.0, 0.0 }, -- FadeStart, FadeEnd, StartAlpha, EndAlpha @@ -65,7 +65,7 @@ local colorConfig = { }, cannon = { color = { 1.0, 0.22, 0.05, 0.60 }, - fadeparams = { 900, 1300, 1.0, 0.0 }, -- FadeStart, FadeEnd, StartAlpha, EndAlpha + fadeparams = { 1500, 2200, 1.0, 0.0 }, -- FadeStart, FadeEnd, StartAlpha, EndAlpha groupselectionfadescale = 0.75, externallinethickness = 3.0, internallinethickness = 2.0, @@ -259,7 +259,7 @@ local function initializeUnitDefRing(unitDefID) groupselectionfadescale, weaponType, isDgun, - --maxangledif + maxangledif } unitDefRings[unitDefID]['rings'][weaponNum] = ringParams end diff --git a/luaui/Widgets/gui_buildmenu.lua b/luaui/Widgets/gui_buildmenu.lua index 1537e0274c2..33ba81513e2 100644 --- a/luaui/Widgets/gui_buildmenu.lua +++ b/luaui/Widgets/gui_buildmenu.lua @@ -142,7 +142,6 @@ local function refreshUnitDefs() end end end -refreshUnitDefs() local spIsUnitSelected = Spring.IsUnitSelected local spGetSelectedUnitsCount = Spring.GetSelectedUnitsCount @@ -556,7 +555,7 @@ local function drawCell(cellRectID, usedZoom, cellColor, disabled, colls) ) end - + local quotaNumber, builderID for _, factoryID in ipairs(spGetSelectedUnits()) do if WG.Quotas and WG.Quotas.getQuotas()[factoryID] and WG.Quotas.getQuotas()[factoryID][uDefID] then @@ -1034,7 +1033,7 @@ local function isOnQuotaBuildMode(targetDefID) for _, unitID in ipairs(spGetSelectedUnits()) do local uDefID = spGetUnitDefID(unitID) if units.isFactory[uDefID] and table.contains(unitBuildOptions[uDefID], targetDefID) then - return WG.Quotas and WG.Quotas.isOnQuotaMode(unitID) + return WG.Quotas and WG.Quotas.isOnQuotaMode(unitID) end end return false @@ -1245,6 +1244,8 @@ local function bindBuildUnits(widget) end function widget:Initialize() + refreshUnitDefs() + if widgetHandler:IsWidgetKnown("Grid menu") then -- Grid menu needs to be disabled right now and before we recreate -- WG['buildmenu'] since its Shutdown will destroy it. diff --git a/luaui/Widgets/gui_chat.lua b/luaui/Widgets/gui_chat.lua index 081c4904993..1904837281c 100644 --- a/luaui/Widgets/gui_chat.lua +++ b/luaui/Widgets/gui_chat.lua @@ -21,6 +21,9 @@ local LineTypes = { local utf8 = VFS.Include('common/luaUtilities/utf8.lua') +local L_DEPRECATED = LOG.DEPRECATED +local isDevSingle = (Spring.Utilities.IsDevMode() and Spring.Utilities.Gametype.IsSinglePlayer()) + local showHistoryWhenChatInput = true local showHistoryWhenCtrlShift = true @@ -1538,6 +1541,11 @@ local function drawChatInput() end end +function widget:FontsChanged() + clearDisplayLists() + textInputDlist = glDeleteList(textInputDlist) + processLines() +end function widget:DrawScreen() if chobbyInterface then return end @@ -2088,6 +2096,7 @@ function widget:MapDrawCmd(playerID, cmdType, x, y, z, a, b, c) end function widget:AddConsoleLine(lines, priority) + if priority and priority == L_DEPRECATED and not isDevSingle then return end lines = lines:match('^%[f=[0-9]+%] (.*)$') or lines for line in lines:gmatch("[^\n]+") do processAddConsoleLine(spGetGameFrame(), line, true) diff --git a/luaui/Widgets/gui_defenserange_gl4.lua b/luaui/Widgets/gui_defenserange_gl4.lua index 956f832be44..fe9a141b3ce 100644 --- a/luaui/Widgets/gui_defenserange_gl4.lua +++ b/luaui/Widgets/gui_defenserange_gl4.lua @@ -8,7 +8,8 @@ function widget:GetInfo() date = "2021.04.26", license = "Lua: GPLv2, GLSL: (c) Beherith (mysterme@gmail.com)", layer = -100, - enabled = false + enabled = false, + depends = {'gl4'}, } end diff --git a/luaui/Widgets/gui_ecostats.lua b/luaui/Widgets/gui_ecostats.lua index 942ae7af19a..f06fc3bc19d 100644 --- a/luaui/Widgets/gui_ecostats.lua +++ b/luaui/Widgets/gui_ecostats.lua @@ -1065,6 +1065,10 @@ local function drawListStandard() end end + if maxMetal == 0 or maxEnergy == 0 then + return -- protect from NaN + end + for _, data in ipairs(allyData) do local aID = data.aID if aID ~= nil then diff --git a/luaui/Widgets/gui_fonthandler.lua b/luaui/Widgets/gui_fonthandler.lua index 7708d7b498e..e6cbb9bf707 100644 --- a/luaui/Widgets/gui_fonthandler.lua +++ b/luaui/Widgets/gui_fonthandler.lua @@ -5,7 +5,7 @@ function widget:GetInfo() author = "Floris", date = "June 2020", license = "GNU GPL, v2 or later", - layer = -999999, + layer = -1000001, enabled = true } end @@ -58,8 +58,16 @@ function widget:Update(dt) --end end +local function addFallbackFonts() + if not gl.AddFallbackFont then return end + + gl.AddFallbackFont('fallbacks/NotoEmoji-VariableFont_wght.ttf') + gl.AddFallbackFont('fallbacks/SourceHanSans-Regular.ttc') +end function widget:Initialize() + addFallbackFonts() + widget:ViewResize() WG['fonts'] = {} diff --git a/luaui/Widgets/gui_gridmenu.lua b/luaui/Widgets/gui_gridmenu.lua index 66cd58df1a6..585255320da 100644 --- a/luaui/Widgets/gui_gridmenu.lua +++ b/luaui/Widgets/gui_gridmenu.lua @@ -314,6 +314,7 @@ local function refreshUnitDefs() unitBuildOptions[udid] = ud.buildOptions unitTranslatedHumanName[udid] = ud.translatedHumanName unitTranslatedTooltip[udid] = ud.translatedTooltip + if ud.customParams.metal_extractor then unitMetal_extractor[udid] = ud.customParams.metal_extractor end @@ -323,8 +324,6 @@ local function refreshUnitDefs() end end -refreshUnitDefs() - -- starting units local startUnits = { UnitDefNames.armcom.id, UnitDefNames.corcom.id } if Spring.GetModOptions().experimentallegionfaction then @@ -1239,6 +1238,8 @@ local function cycleBuilder() end function widget:Initialize() + refreshUnitDefs() + if widgetHandler:IsWidgetKnown("Build menu") then -- Build menu needs to be disabled right now and before we recreate -- WG['buildmenu'] since its Shutdown will destroy it. diff --git a/luaui/Widgets/gui_ground_ao_plates_gl4.lua b/luaui/Widgets/gui_ground_ao_plates_gl4.lua index 2efc5cd82de..5839e54e61a 100644 --- a/luaui/Widgets/gui_ground_ao_plates_gl4.lua +++ b/luaui/Widgets/gui_ground_ao_plates_gl4.lua @@ -7,6 +7,7 @@ function widget:GetInfo() license = "GNU GPL, v2 or later", layer = -1, enabled = true, + depends = {'gl4'}, } end diff --git a/luaui/Widgets/gui_info.lua b/luaui/Widgets/gui_info.lua index 3bd236ea894..7eee147e918 100644 --- a/luaui/Widgets/gui_info.lua +++ b/luaui/Widgets/gui_info.lua @@ -27,8 +27,6 @@ local activeCmdID local emptyInfo = false local showEngineTooltip = false -- straight up display old engine delivered text -local texts = {} - local iconTypes = VFS.Include("gamedata/icontypes.lua") local fontfile = "fonts/" .. Spring.GetConfigString("bar_font", "Poppins-Regular.otf") @@ -465,6 +463,22 @@ local function refreshUnitInfo() unitDefInfo[unitDefID].isAaUnit = true end + --shield params + if weaponDef.shieldRadius and weaponDef.shieldRadius > 0 then + if #weapons <= 1 then + unitDefInfo[unitDefID].weapons = {} + unitDefInfo[unitDefID].mindps = 0 + unitDefInfo[unitDefID].maxdps = 0 + unitDefInfo[unitDefID].range = 0 + unitDefInfo[unitDefID].reloadTime = 0 + unitDefInfo[unitDefID].mainWeapon = 1 + unitDefInfo[unitDefID].shieldOnly = true + end + unitDefInfo[unitDefID].shieldRange = weaponDef.shieldRadius + unitDefInfo[unitDefID].shieldCapacity = weaponDef.shieldPower + unitDefInfo[unitDefID].shieldRechargeRate = weaponDef.shieldPowerRegen + unitDefInfo[unitDefID].shieldRechargeCost = weaponDef.shieldPowerRegenEnergy + end end if unitDef.customParams.unitgroup and unitDef.customParams.unitgroup == 'explo' and unitDef.deathExplosion and WeaponDefNames[unitDef.deathExplosion] then @@ -613,8 +627,6 @@ function widget:Initialize() refreshUnitInfo() - texts = Spring.I18N('ui.info') - checkGeothermalFeatures() widget:ViewResize() @@ -899,7 +911,7 @@ local function drawSelection() local height = 0 local heightStep = (fontSize * 1.36) font2:Begin() - font2:Print(tooltipTextColor .. #selectedUnits .. tooltipLabelTextColor .. " "..texts.unitsselected, backgroundRect[1] + contentPadding, backgroundRect[4] - contentPadding - (fontSize * 1.2) - height, (fontSize * 1.23), "o") + font2:Print(tooltipTextColor .. #selectedUnits .. tooltipLabelTextColor .. " "..Spring.I18N('ui.info.unitsselected'), backgroundRect[1] + contentPadding, backgroundRect[4] - contentPadding - (fontSize * 1.2) - height, (fontSize * 1.23), "o") font2:End() font:Begin() height = height + (fontSize * 0.85) @@ -940,25 +952,25 @@ local function drawSelection() local valueMinColor = '\255\255\180\180' if totalMetalUse > 0 or totalMetalMake > 0 then height = height + heightStep - font:Print( tooltipLabelTextColor .. texts.m.." " .. (totalMetalMake > 0 and valuePlusColor .. '+' .. (totalMetalMake < 10 and round(totalMetalMake, 1) or round(totalMetalMake, 0)) .. ' ' or '') .. (totalMetalUse > 0 and valueMinColor .. '-' .. (totalMetalUse < 10 and round(totalMetalUse, 1) or round(totalMetalUse, 0)) or ''), backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") + font:Print( tooltipLabelTextColor .. Spring.I18N('ui.info.m').." " .. (totalMetalMake > 0 and valuePlusColor .. '+' .. (totalMetalMake < 10 and round(totalMetalMake, 1) or round(totalMetalMake, 0)) .. ' ' or '') .. (totalMetalUse > 0 and valueMinColor .. '-' .. (totalMetalUse < 10 and round(totalMetalUse, 1) or round(totalMetalUse, 0)) or ''), backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") end if totalEnergyUse > 0 or totalEnergyMake > 0 then height = height + heightStep - font:Print( tooltipLabelTextColor .. texts.e.." " .. (totalEnergyMake > 0 and valuePlusColor .. '+' .. (totalEnergyMake < 10 and round(totalEnergyMake, 1) or round(totalEnergyMake, 0)) .. ' ' or '') .. (totalEnergyUse > 0 and valueMinColor .. '-' .. (totalEnergyUse < 10 and round(totalEnergyUse, 1) or round(totalEnergyUse, 0)) or ''), backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") + font:Print( tooltipLabelTextColor .. Spring.I18N('ui.info.e').." " .. (totalEnergyMake > 0 and valuePlusColor .. '+' .. (totalEnergyMake < 10 and round(totalEnergyMake, 1) or round(totalEnergyMake, 0)) .. ' ' or '') .. (totalEnergyUse > 0 and valueMinColor .. '-' .. (totalEnergyUse < 10 and round(totalEnergyUse, 1) or round(totalEnergyUse, 0)) or ''), backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") end -- metal cost height = height + heightStep - font:Print( tooltipLabelTextColor .. texts.costm.." " .. tooltipValueWhiteColor .. totalMetalValue, backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") + font:Print( tooltipLabelTextColor .. Spring.I18N('ui.info.costm').." " .. tooltipValueWhiteColor .. totalMetalValue, backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") -- energy cost height = height + heightStep - font:Print( tooltipLabelTextColor .. texts.coste.."\255\255\255\128 " .. totalEnergyValue, backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") + font:Print( tooltipLabelTextColor .. Spring.I18N('ui.info.coste').."\255\255\255\128 " .. totalEnergyValue, backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") -- kills if totalKills > 0 then height = height + heightStep - font:Print( tooltipLabelTextColor .. texts.kills.." " .. tooltipValueColor .. totalKills, backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") + font:Print( tooltipLabelTextColor .. Spring.I18N('ui.info.kills').." " .. tooltipValueColor .. totalKills, backgroundRect[1] + contentPadding, backgroundRect[4] - (bgpadding*2.4) - (fontSize * 0.8) - height, fontSize, "o") end font:End() @@ -1392,14 +1404,14 @@ local function drawUnitInfo() local reloadTimeSpeedup = 1.0 local currentReloadTime = unitDefInfo[displayUnitDefID].reloadTime if exp and exp > 0.009 then - addTextInfo(texts.xp, round(exp, 2)) - addTextInfo(texts.maxhealth, '+' .. round((maxHealth / unitDefInfo[displayUnitDefID].health - 1) * 100, 0) .. '%') + addTextInfo(Spring.I18N('ui.info.xp'), round(exp, 2)) + addTextInfo(Spring.I18N('ui.info.maxhealth'), '+' .. round((maxHealth / unitDefInfo[displayUnitDefID].health - 1) * 100, 0) .. '%') currentReloadTime = spGetUnitWeaponState(displayUnitID, unitDefInfo[displayUnitDefID].mainWeapon, 'reloadTimeXP') if unitDefInfo[displayUnitDefID].reloadTime then reloadTimeSpeedup = currentReloadTime / unitDefInfo[displayUnitDefID].reloadTime local reloadTimeSpeedupPercentage = tonumber(round((1 - reloadTimeSpeedup) * 100, 0)) if reloadTimeSpeedupPercentage > 0 then - addTextInfo(texts.reload, '-' .. reloadTimeSpeedupPercentage .. '%') + addTextInfo(Spring.I18N('ui.info.reload'), '-' .. reloadTimeSpeedupPercentage .. '%') end end end @@ -1407,7 +1419,7 @@ local function drawUnitInfo() -- basic dps display if mindps and mindps > 0 and mindps == maxdps then local dps = round(mindps/ reloadTimeSpeedup, 0) - addTextInfo(texts.dps, dps) + addTextInfo(Spring.I18N('ui.info.dps'), dps) -- dps range elseif mindps and mindps > 0 and mindps ~= maxdps then @@ -1430,46 +1442,53 @@ local function drawUnitInfo() end if unitDefInfo[displayUnitDefID].maxCoverage then - addTextInfo(texts.coverrange, unitDefInfo[displayUnitDefID].maxCoverage) - elseif maxRange then - addTextInfo(texts.weaponrange, math_floor(maxRange)) + addTextInfo(Spring.I18N('ui.info.coverrange'), unitDefInfo[displayUnitDefID].maxCoverage) + elseif maxRange and not unitDefInfo[displayUnitDefID].shieldOnly then + addTextInfo(Spring.I18N('ui.info.weaponrange'), math_floor(maxRange)) end if currentReloadTime and currentReloadTime > 0 then - addTextInfo(texts.reloadtime, round(currentReloadTime, 2)) + addTextInfo(Spring.I18N('ui.info.reloadtime'), round(currentReloadTime, 2)) end if unitDefInfo[displayUnitDefID].energyPerShot then - addTextInfo(texts.energyshot, unitDefInfo[displayUnitDefID].energyPerShot) + addTextInfo(Spring.I18N('ui.info.energyshot'), unitDefInfo[displayUnitDefID].energyPerShot) end if unitDefInfo[displayUnitDefID].metalPerShot then - addTextInfo(texts.metalshot, unitDefInfo[displayUnitDefID].metalPerShot) + addTextInfo(Spring.I18N('ui.info.metalshot'), unitDefInfo[displayUnitDefID].metalPerShot) end end + -- shield display + if unitDefInfo[displayUnitDefID].shieldCapacity then + addTextInfo(Spring.I18N('ui.info.shieldcapacity'), unitDefInfo[displayUnitDefID].shieldCapacity) + addTextInfo(Spring.I18N('ui.info.shieldrange'), unitDefInfo[displayUnitDefID].shieldRange) + addTextInfo(Spring.I18N('ui.info.shieldrechargerate'), unitDefInfo[displayUnitDefID].shieldRechargeRate) + addTextInfo(Spring.I18N('ui.info.shieldrechargecost'), unitDefInfo[displayUnitDefID].shieldRechargeCost) + end if unitDefInfo[displayUnitDefID].stealth then - addTextInfo(texts.stealthy, nil) + addTextInfo(Spring.I18N('ui.info.stealthy'), nil) end if unitDefInfo[displayUnitDefID].cloakCost then if unitDefInfo[displayUnitDefID].cloakCostMoving then - addTextInfo(texts.cloakcost, unitDefInfo[displayUnitDefID].cloakCost .. "/" .. unitDefInfo[displayUnitDefID].cloakCostMoving) + addTextInfo(Spring.I18N('ui.info.cloakcost'), unitDefInfo[displayUnitDefID].cloakCost .. "/" .. unitDefInfo[displayUnitDefID].cloakCostMoving) else - addTextInfo(texts.cloakcost, unitDefInfo[displayUnitDefID].cloakCost) + addTextInfo(Spring.I18N('ui.info.cloakcost'), unitDefInfo[displayUnitDefID].cloakCost) end end if unitDefInfo[displayUnitDefID].speed then - addTextInfo(texts.speed, unitDefInfo[displayUnitDefID].speed) + addTextInfo(Spring.I18N('ui.info.speed'), unitDefInfo[displayUnitDefID].speed) end if unitDefInfo[displayUnitDefID].reverseSpeed then - addTextInfo(texts.reversespeed, unitDefInfo[displayUnitDefID].reverseSpeed) + addTextInfo(Spring.I18N('ui.info.reversespeed'), unitDefInfo[displayUnitDefID].reverseSpeed) end --if metalExtraction then -- addTextInfo('metal extraction', round(metalExtraction, 2)) --end if unitDefInfo[displayUnitDefID].buildSpeed then - addTextInfo(texts.buildpower, unitDefInfo[displayUnitDefID].buildSpeed) + addTextInfo(Spring.I18N('ui.info.buildpower'), unitDefInfo[displayUnitDefID].buildSpeed) end --if unitDefInfo[displayUnitDefID].armorType and unitDefInfo[displayUnitDefID].armorType ~= 'standard' then @@ -1477,40 +1496,40 @@ local function drawUnitInfo() --end if unitDefInfo[displayUnitDefID].sightDistance then - addTextInfo(texts.los, round(unitDefInfo[displayUnitDefID].sightDistance, 0)) + addTextInfo(Spring.I18N('ui.info.los'), round(unitDefInfo[displayUnitDefID].sightDistance, 0)) end if unitDefInfo[displayUnitDefID].airSightDistance and (unitDefInfo[displayUnitDefID].airUnit or unitDefInfo[displayUnitDefID].isAaUnit) then - addTextInfo(texts.airlos, round(unitDefInfo[displayUnitDefID].airSightDistance, 0)) + addTextInfo(Spring.I18N('ui.info.airlos'), round(unitDefInfo[displayUnitDefID].airSightDistance, 0)) end if unitDefInfo[displayUnitDefID].radarDistance then - addTextInfo(texts.radar, round(unitDefInfo[displayUnitDefID].radarDistance, 0)) + addTextInfo(Spring.I18N('ui.info.radar'), round(unitDefInfo[displayUnitDefID].radarDistance, 0)) end if unitDefInfo[displayUnitDefID].sonarDistance then - addTextInfo(texts.sonar, round(unitDefInfo[displayUnitDefID].sonarDistance, 0)) + addTextInfo(Spring.I18N('ui.info.sonar'), round(unitDefInfo[displayUnitDefID].sonarDistance, 0)) end if unitDefInfo[displayUnitDefID].radarDistanceJam then - addTextInfo(texts.jamrange, round(unitDefInfo[displayUnitDefID].radarDistanceJam, 0)) + addTextInfo(Spring.I18N('ui.info.jamrange'), round(unitDefInfo[displayUnitDefID].radarDistanceJam, 0)) end if unitDefInfo[displayUnitDefID].sonarDistanceJam then - addTextInfo(texts.sonarjamrange, round(unitDefInfo[displayUnitDefID].sonarDistanceJam, 0)) + addTextInfo(Spring.I18N('ui.info.sonarjamrange'), round(unitDefInfo[displayUnitDefID].sonarDistanceJam, 0)) end if unitDefInfo[displayUnitDefID].seismicDistance then - addTextInfo(texts.seismic, unitDefInfo[displayUnitDefID].seismicDistance) + addTextInfo(Spring.I18N('ui.info.seismic'), unitDefInfo[displayUnitDefID].seismicDistance) end --addTextInfo('mass', round(Spring.GetUnitMass(displayUnitID),0)) --addTextInfo('radius', round(Spring.GetUnitRadius(displayUnitID),0)) --addTextInfo('height', round(Spring.GetUnitHeight(displayUnitID),0)) if unitDefInfo[displayUnitDefID].metalmaker then - addTextInfo(texts.eneededforconversion, unitDefInfo[displayUnitDefID].metalmaker[1]) - addTextInfo(texts.convertedm, round(unitDefInfo[displayUnitDefID].metalmaker[1] / (1 / unitDefInfo[displayUnitDefID].metalmaker[2]), 1)) + addTextInfo(Spring.I18N('ui.info.eneededforconversion'), unitDefInfo[displayUnitDefID].metalmaker[1]) + addTextInfo(Spring.I18N('ui.info.convertedm'), round(unitDefInfo[displayUnitDefID].metalmaker[1] / (1 / unitDefInfo[displayUnitDefID].metalmaker[2]), 1)) end if unitDefInfo[displayUnitDefID].energyStorage > 0 then - addTextInfo(texts.estorage, unitDefInfo[displayUnitDefID].energyStorage) + addTextInfo(Spring.I18N('ui.info.estorage'), unitDefInfo[displayUnitDefID].energyStorage) end if unitDefInfo[displayUnitDefID].metalStorage > 0 then - addTextInfo(texts.mstorage, unitDefInfo[displayUnitDefID].metalStorage) + addTextInfo(Spring.I18N('ui.info.mstorage'), unitDefInfo[displayUnitDefID].metalStorage) end if unitDefInfo[displayUnitDefID].transport then @@ -1521,7 +1540,7 @@ local function drawUnitInfo() if unitDefInfo[displayUnitDefID].transport[1] > 5000 then addTextInfo(Spring.I18N('ui.info.transport_heavy', { highlightColor = valueColor }), nil) end - addTextInfo(texts.transportcapacity, unitDefInfo[displayUnitDefID].transport[3]) + addTextInfo(Spring.I18N('ui.info.transportcapacity'), unitDefInfo[displayUnitDefID].transport[3]) end local text, _ = font:WrapText(text, ((backgroundRect[3] - bgpadding - bgpadding - bgpadding) - (backgroundRect[1] + contentPaddingLeft)) * (loadedFontSize / infoFontsize)) @@ -1944,7 +1963,7 @@ function widget:DrawScreen() if cellHovered then textTitle = unitDefInfo[selectionCells[cellHovered]].translatedHumanName .. tooltipLabelTextColor .. (selUnitsCounts[selectionCells[cellHovered]] > 1 and ' x ' .. tooltipTextColor .. selUnitsCounts[selectionCells[cellHovered]] or '') else - --textTitle = texts.selectedunits..": " .. tooltipTextColor .. #selectedUnits + --textTitle = Spring.I18N('ui.info.selectedunits')..": " .. tooltipTextColor .. #selectedUnits text = selectionHowto end diff --git a/luaui/Widgets/gui_infolos.lua b/luaui/Widgets/gui_infolos.lua index ca7c013b734..e684a48fa2a 100644 --- a/luaui/Widgets/gui_infolos.lua +++ b/luaui/Widgets/gui_infolos.lua @@ -36,35 +36,20 @@ local GL_RGBA32F_ARB = 0x8814 -- TODO: 2022.12.12 - -- [x] make it work? - -- [x] make api share? - -- [x] a clever thing might be to have 1 texture per allyteam? + -- make it work? + -- make api share? + -- a clever thing might be to have 1 texture per allyteam? -- some bugginess with jammer range? -- TODO 2022.12.20 -- Read miplevels from modrules? --- TODO 2024.11.19 - -- [x] Make the shader have exact visibility per 8 elmo square (hmap - 1) - -- [ ] Make the shader update at updaterate for true smoothness. - -- [ ] When does the LOS texture actually get updated though? - -- [ ] Would need to double-buffer the texture, and perform a swap every (15) gameframes - -- [ ] API must then expose the new and the old texture, and the progress factor between them. - -- [ ] The default 30hz smootheness is far from enough - -- [ ] The delayed approach is fucking stupid. - -- [ ] The mip level should be the 'smallest' mip level possible, and save a fused texture - -- [ ] Note that we must retain the 'never been seen'/ 'never been in radar' functionality - - local autoreload = false - +---- CONFIGURABLE PARAMETERS: ----------------------------------------- local shaderConfig = { SAMPLES = 4, -- quality setting - TEXX = (Game.mapSizeX/8), - TEXY = (Game.mapSizeZ/8), - RESOLUTION = 2, - EXACT = 1, -- 1 = exact visibility per 8 elmo square (hmap - 1) + RESOLUTION = 2, -- Number of times to downsample (fraction of heightmap rez!) } --------------------------------------------------------------------------- @@ -84,42 +69,39 @@ local luaShaderDir = "LuaUI/Widgets/Include/" local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") VFS.Include(luaShaderDir.."instancevbotable.lua") -local fullScreenQuadVAO = nil - local vsSrcPath = "LuaUI/Widgets/Shaders/infolos.vert.glsl" local fsSrcPath = "LuaUI/Widgets/Shaders/infolos.frag.glsl" local miplevels = {2^3, 2^4, 2^3, 1} -- los, airlos and radar mip levels local shaderSourceCache = { - vssrcpath = vsSrcPath, - fssrcpath = fsSrcPath, - uniformFloat = { - outputAlpha = outputAlpha, - time = 1.0, - }, - uniformInt = { - tex0 = 0, - tex1 = 1, - tex2 = 2, - tex3 = 3, - }, - textures = { - [0] = "$info:los", - [1] = "$info:airlos", - [2] = "$info:radar", - }, - shaderName = "InfoLOS GL4", - shaderConfig = shaderConfig -} - + vssrcpath = vsSrcPath, + fssrcpath = fsSrcPath, + uniformFloat = { + outputAlpha = outputAlpha, + time = 1.0, + }, + uniformInt = { + tex0 = 0, + tex1 = 1, + tex2 = 2, + tex3 = 3, + }, + textures = { + [0] = "$info:los", + [1] = "$info:airlos", + [2] = "$info:radar", + }, + shaderName = "InfoLOS GL4", + shaderConfig = shaderConfig + } local function GetInfoLOSTexture(allyTeam) return infoTextures[allyTeam or currentAllyTeam] end local function CreateLosTexture() - return gl.CreateTexture(shaderConfig.TEXX, shaderConfig.TEXY, { + return gl.CreateTexture(texX, texY, { min_filter = GL.LINEAR, mag_filter = GL.LINEAR, wrap_s = GL.CLAMP_TO_EDGE, @@ -135,9 +117,7 @@ local function renderToTextureFunc() -- this draws the fogspheres onto the textu gl.Texture(1, "$info:airlos") gl.Texture(2, "$info:radar") --$info:los gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - - fullScreenQuadVAO:DrawArrays(GL.TRIANGLES) - --gl.TexRect(-1, -1, 1, 1, 0, 0, 1, 1) + gl.TexRect(-1, -1, 1, 1, 0, 0, 1, 1) gl.Texture(0, false) gl.Texture(1, false) gl.Texture(2, false) @@ -180,6 +160,8 @@ function widget:Initialize() return end --local alwaysColor, losColor, radarColor, jamColor, radarColor2 = Spring.GetLosViewColors() + texX = (Game.mapSizeX/8)/shaderConfig.RESOLUTION + texY = (Game.mapSizeZ/8)/shaderConfig.RESOLUTION for name, tex in pairs({LOS = "$info:los", AIRLOS = "$info:airlos", RADAR = "$info:radar" }) do local texInfo = gl.TextureInfo(tex) @@ -198,12 +180,10 @@ function widget:Initialize() if not shaderCompiled then Spring.Echo("Failed to compile InfoLOS GL4") end - fullScreenQuadVAO = MakeTexRectVAO()-- -1, -1, 1, 0, 0,0,1, 0.5 WG['infolosapi'] = {} WG['infolosapi'].GetInfoLOSTexture = GetInfoLOSTexture widgetHandler:RegisterGlobal('GetInfoLOSTexture', WG['infolosapi'].GetInfoLOSTexture) - end function widget:Shutdown() @@ -223,7 +203,7 @@ end --local lastUpdate = Spring.GetTimer() -function widget:DrawGenesis() +function widget:DrawWorldPreUnit() -- local nowtime = Spring.GetTimer() -- local deltat = Spring.DiffTimers(nowtime, lastUpdate) -- keeping outputAlpha identical is a very important trick for never-before-seen areas! @@ -242,22 +222,17 @@ function widget:DrawGenesis() end end - function widget:DrawScreen() -- the debug display output - if autoreload then + if autoreload then infoShader = LuaShader.CheckShaderUpdates(shaderSourceCache) or infoShader gl.Color(1,1,1,1) -- use this to show individual channels of the texture! gl.Texture(0, infoTextures[currentAllyTeam]) gl.Blending(GL.ONE, GL.ZERO) - gl.Culling(false) - gl.TexRect(0, 0, shaderConfig.TEXX, shaderConfig.TEXY, 0, 0, 1, 1) -- REMEMBER THAT THIS UPSIDE DOWN! + gl.TexRect(0, 0, texX, texY, 0, 1, 1, 0) - gl.Text(tostring(currentAllyTeam), shaderConfig.TEXX, shaderConfig.TEXY,16) + gl.Text(tostring(currentAllyTeam), texX, texY,16) gl.Texture(0,"$info:los") - --gl.TexRect(texX, 0, texX + shaderConfig['LOSXSIZE'], shaderConfig['LOSYSIZE'], 0, 1, 1, 0) + gl.TexRect(texX, 0, texX + shaderConfig['LOSXSIZE'], shaderConfig['LOSYSIZE'], 0, 1, 1, 0) gl.Texture(0,false) - - gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - if infoShader.DrawPrintf then infoShader.DrawPrintf() end end end diff --git a/luaui/Widgets/gui_language.lua b/luaui/Widgets/gui_language.lua index 1b28b515dd1..1f7d14075a6 100644 --- a/luaui/Widgets/gui_language.lua +++ b/luaui/Widgets/gui_language.lua @@ -27,6 +27,8 @@ function widget:LanguageChanged() end function widget:Initialize() + i18nHelper.RefreshDefs() + widgetHandler:RegisterGlobal('GadgetMessageProxy', getMessageProxy) WG['language'] = {} diff --git a/luaui/Widgets/gui_los_view_gl4.lua b/luaui/Widgets/gui_los_view_gl4.lua deleted file mode 100644 index 8fc01cb2aa1..00000000000 --- a/luaui/Widgets/gui_los_view_gl4.lua +++ /dev/null @@ -1,129 +0,0 @@ - --------------------------------------------------------------------------------- -function widget:GetInfo() - return { - name = "LOS View GL4", - version = 3, - desc = "Draws LOS view into screencopy", - author = "Beherith", - date = "2024.11.19", - license = "GPL V2", - layer = -10000, -- lol this isnt even a number - enabled = false - } -end - --------------------------------------------------------------------------------- ---- TODO: ---- - [ ] Customize grid ---- - [ ] Ensure draw order is correct after decals_gl4 ---- - [ ] Mark los edge with white line ---- - [ ] Mark radar edge with stippled green line ---- - [ ] Find a nice noise approach ---- - [ ] Implement desat-darken approach ---- - [ ] scanlines dont work underwater if drawn preunit :'( ---- - [ ] If drawn postunit, then ghosts are shaded incorrectly ---- ---- --------------------------------------------------------------------------------- - -local autoreload = true - -local shaderConfig = { - DEBUG = autoreload and 1 or 0, - PREUNIT = 1, -- 1 for preunit, 0 for postunit -} - -local luaShaderDir = "LuaUI/Widgets/Include/" -local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") -VFS.Include(luaShaderDir.."instancevbotable.lua") - -local currentAllyTeam = 0 -local ScreenCopyTexture = nil -local vsx, vsy, vpx, vpy -local losViewShader = nil -local fullScreenQuadVAO = nil -local losViewShaderSourceCache = { - vssrcpath = "LuaUI/Widgets/Shaders/infolos_view.vert.glsl", - fssrcpath = "LuaUI/Widgets/Shaders/infolos_view.frag.glsl", - uniformFloat = { - blendfactors = {1,1,1,1}, - }, - uniformInt = { - mapDepths = 0, - modelDepths = 1, - screenCopyTex = 2, - losTex = 3, - }, - shaderName = "LosViewShader GL4", - shaderConfig = shaderConfig - } - - -function widget:PlayerChanged(playerID) - currentAllyTeam = Spring.GetMyAllyTeamID() -end - -function widget:ViewResize() - vsx, vsy, vpx, vpy = Spring.GetViewGeometry() - if ScreenCopyTexture then gl.DeleteTexture(ScreenCopyTexture) end - ScreenCopyTexture = gl.CreateTexture(vsx , vsy, { - border = false, - min_filter = GL.LINEAR, - mag_filter = GL.LINEAR, - wrap_s = GL.CLAMP, - wrap_t = GL.CLAMP, - format = GL.RGBA8, -- more than enough - }) -end - -function widget:Initialize() - if not gl.CreateShader then -- no shader support, so just remove the widget itself, especially for headless - widgetHandler:RemoveWidget() - return - end - if not WG['infolosapi'] then - Spring.Echo("Los View GL4: Missing InfoLOS API") - widgetHandler:RemoveWidget() - return - end - - widget:ViewResize() - losViewShader = LuaShader.CheckShaderUpdates(losViewShaderSourceCache) - fullScreenQuadVAO = MakeTexRectVAO()-- -1, -1, 1, 0, 0,0,1, 0.5) - losViewShader:Initialize() - if not losViewShader then Spring.Echo("Failed to compile losViewShader GL4") end -end - -function widget:Shutdown() - if ScreenCopyTexture then gl.DeleteTexture(ScreenCopyTexture) end -end - -function widget:DrawPreDecals() - if autoreload then - losViewShader = LuaShader.CheckShaderUpdates(losViewShaderSourceCache) or losViewShader - end - - gl.CopyToTexture(ScreenCopyTexture, 0, 0, vpx, vpy, vsx, vsy) - gl.Texture(0, "$map_gbuffer_zvaltex") - gl.Texture(1, "$model_gbuffer_zvaltex") - gl.Texture(2, ScreenCopyTexture) - gl.Texture(3, WG['infolosapi'].GetInfoLOSTexture(currentAllyTeam)) - gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) - gl.Culling(false) -- ffs - gl.DepthTest(false) - gl.DepthMask(false) --"BK OpenGL state resets", default is already false, could remove - - losViewShader:Activate() - losViewShader:SetUniformFloat("blendfactors", {1,1,1,1}) - fullScreenQuadVAO:DrawArrays(GL.TRIANGLES) - losViewShader:Deactivate() - gl.DepthTest(true) - for i = 0,3 do gl.Texture(i, false) end -end - -if autoreload then - function widget:DrawScreen() - if losViewShader.DrawPrintf then losViewShader.DrawPrintf() end - end -end \ No newline at end of file diff --git a/luaui/Widgets/gui_metalspots.lua b/luaui/Widgets/gui_metalspots.lua index c4de98472ea..0baa751d165 100644 --- a/luaui/Widgets/gui_metalspots.lua +++ b/luaui/Widgets/gui_metalspots.lua @@ -195,8 +195,8 @@ local function makeSpotVBO() arrayAppend(VBOData, {billboardsize, billboardsize, 1, 2}) arrayAppend(VBOData, {-billboardsize, 0, 1, 2}) arrayAppend(VBOData, {billboardsize, billboardsize, 1, 2}) - arrayAppend(VBOData, {-billboardsize, 0, 1, 2}) arrayAppend(VBOData, {-billboardsize, billboardsize, 1, 2}) + arrayAppend(VBOData, {-billboardsize, 0, 1, 2}) end spotVBO:Define(#VBOData/4, VBOLayout) @@ -519,6 +519,7 @@ function widget:DrawWorldPreUnit() local clockDifference = (os.clock() - previousOsClock) previousOsClock = os.clock() + gl.Culling(true) gl.Texture(0, "$heightmap") gl.Texture(1, AtlasTextureID) gl.DepthTest(false) @@ -532,6 +533,7 @@ function widget:DrawWorldPreUnit() needsInit = false end + gl.Culling(false) gl.Texture(0, false) gl.Texture(1, false) end diff --git a/luaui/Widgets/gui_options.lua b/luaui/Widgets/gui_options.lua index abf5fc22187..d218a553aad 100644 --- a/luaui/Widgets/gui_options.lua +++ b/luaui/Widgets/gui_options.lua @@ -2443,15 +2443,6 @@ function init() end, }, - { id = "lighteffects_screenspaceshadows", group = "gfx", category = types.dev, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.lighteffects_screenspaceshadows'), min = 0, max = 4, step = 1, type = "slider", value = 2, description = Spring.I18N('ui.settings.option.lighteffects_screenspaceshadows_descr'), - onload = function(i) - loadWidgetData("Deferred rendering GL4", "lighteffects_screenspaceshadows", { 'screenSpaceShadows' }) - end, - onchange = function(i, value) - saveOptionValue('Deferred rendering GL4', 'lightsgl4', 'ScreenSpaceShadows', { 'screenSpaceShadows' }, value) - end, - }, - { id = "darkenmap", group = "gfx", category = types.advanced, name = Spring.I18N('ui.settings.option.darkenmap'), min = 0, max = 0.33, step = 0.01, type = "slider", value = 0, description = Spring.I18N('ui.settings.option.darkenmap_descr'), onload = function(i) loadWidgetData("Darken map", "darkenmap", { 'darknessvalue' }) @@ -3099,9 +3090,10 @@ function init() Spring.SetConfigInt("CamSpringTrackMapHeightMode", value - 1) end, }, - { id = "mincamheight", group = "control", category = types.advanced, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.mincamheight'), type = "slider", min = 0, max = 1500, step = 1, value = Spring.GetConfigInt("MinimumCameraHeight", 300), description = Spring.I18N('ui.settings.option.mincamheight_descr'), + { id = "mincamheight", group = "control", category = types.advanced, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.mincamheight'), type = "slider", min = 0, max = 1500, step = 1, value = Spring.GetConfigInt("CamSpringMinZoomDistance", 0), description = Spring.I18N('ui.settings.option.mincamheight_descr'), onchange = function(i, value) - Spring.SetConfigInt("MinimumCameraHeight", value) + Spring.SetConfigInt("CamSpringMinZoomDistance", value) + Spring.SetConfigInt("OverheadMinZoomDistance", value) end, }, { id = "camerashake", group = "control", category = types.advanced, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.camerashake'), type = "slider", min = 0, max = 200, step = 10, value = 80, description = Spring.I18N('ui.settings.option.camerashake_descr'), @@ -3132,11 +3124,23 @@ function init() -- end -- end, --}, + { id = "smoothingmode", group = "control", category = types.advanced, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.smoothingmode'), type = "select", options = { Spring.I18N('ui.settings.option.smoothing_exponential'), Spring.I18N('ui.settings.option.smoothing_spring')}, value = (Spring.GetConfigInt("CamTransitionMode", 1) + 1), + onchange = function(i, value) + Spring.SetConfigInt("CamTransitionMode", (value - 1)) + end, + }, { id = "camerasmoothness", group = "control", category = types.advanced, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.camerasmoothness'), type = "slider", min = 0.04, max = 2, step = 0.01, value = cameraTransitionTime, description = Spring.I18N('ui.settings.option.camerasmoothness_descr'), onload = function(i) end, onchange = function(i, value) cameraTransitionTime = value + local halfLife = value + if halfLife <= 1 then + halfLife = halfLife * 200 + else + halfLife = halfLife * 600 - 400 + end + Spring.SetConfigFloat("CamSpringHalflife", halfLife) end, }, { id = "camerapanspeed", group = "control", category = types.basic, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.camerapanspeed'), type = "slider", min = -0.01, max = -0.00195, step = 0.0001, value = Spring.GetConfigFloat("MiddleClickScrollSpeed", 0.0035), description = Spring.I18N('ui.settings.option.camerapanspeed_descr'), @@ -3252,7 +3256,7 @@ function init() end end }, - { id = "language_english_unit_names", group = "ui", category = types.basic, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.language_english_unit_names'), type = "bool", value = (Spring.GetConfigInt("language_english_unit_names", 1) == 1), + { id = "language_english_unit_names", group = "ui", category = types.basic, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.language_english_unit_names'), type = "bool", value = Spring.GetConfigInt("language_english_unit_names", 0) == 1, onchange = function(i, value) WG['language'].setEnglishUnitNames(value) end, @@ -3798,7 +3802,7 @@ function init() }, --{ id = "highlightselunits", group = "ui", category = types.basic, widget = "Highlight Selected Units GL4", name = Spring.I18N('ui.settings.option.highlightselunits'), type = "bool", value = GetWidgetToggleValue("Highlight Selected Units GL4"), description = Spring.I18N('ui.settings.option.highlightselunits_descr') }, - + { id = "highlightselunits", group = "ui", category = types.advanced, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.highlightselunits'), type = "bool", value = true, description = Spring.I18N('ui.settings.option.selectedunits_teamcoloropacity_descr'), onload = function(i) loadWidgetData("Selected Units GL4", "highlightselunits", { 'selectionHighlight' }) @@ -3825,7 +3829,7 @@ function init() --}, -- { id = "highlightunit", group = "ui", category = types.advanced, widget = "Highlight Unit GL4", name = Spring.I18N('ui.settings.option.highlightunit'), type = "bool", value = GetWidgetToggleValue("Highlight Unit GL4"), description = Spring.I18N('ui.settings.option.highlightunit_descr') }, - + { id = "highlightunit", group = "ui", category = types.advanced, name = widgetOptionColor .. " " .. Spring.I18N('ui.settings.option.highlightunit'), type = "bool", value = true, description = Spring.I18N('ui.settings.option.highlightunit_descr'), onload = function(i) loadWidgetData("Selected Units GL4", "highlightunit", { 'mouseoverHighlight' }) diff --git a/luaui/Widgets/gui_raptorStatsPanel.lua b/luaui/Widgets/gui_raptorStatsPanel.lua index 775d4aa34f3..fdf9f9a905c 100644 --- a/luaui/Widgets/gui_raptorStatsPanel.lua +++ b/luaui/Widgets/gui_raptorStatsPanel.lua @@ -184,7 +184,10 @@ local function CreatePanelDisplayList() local totalSeconds = (100 - gameInfo.raptorQueenAnger) / gain time = string.formatTime(totalSeconds) - font:Print(textColor .. Spring.I18N('ui.raptors.queenETA', { time = time }), panelMarginX+5, PanelRow(2), panelFontSize, "") + if totalSeconds < 1800 or revealedQueenEta then + if not revealedQueenEta then revealedQueenEta = true end + font:Print(textColor .. Spring.I18N('ui.raptors.queenETA', { time = time }), panelMarginX+5, PanelRow(2), panelFontSize, "") + end if #currentlyResistantToNames > 0 then currentlyResistantToNames = {} currentlyResistantTo = {} diff --git a/luaui/Widgets/gui_scavStatsPanel.lua b/luaui/Widgets/gui_scavStatsPanel.lua index b3d9378bdfa..77f2012266f 100644 --- a/luaui/Widgets/gui_scavStatsPanel.lua +++ b/luaui/Widgets/gui_scavStatsPanel.lua @@ -126,7 +126,7 @@ local function CreatePanelDisplayList() font:SetTextColor(1, 1, 1, 1) font:SetOutlineColor(0, 0, 0, 1) local currentTime = GetGameSeconds() - if currentTime > gameInfo.scavGracePeriod then + --if currentTime > gameInfo.scavGracePeriod then if gameInfo.scavBossAnger < 100 then local gain = 0 @@ -139,9 +139,15 @@ local function CreatePanelDisplayList() --font:Print(textColor .. Spring.I18N('ui.scavs.bossAngerWithGain', { anger = gameInfo.scavBossAnger, gain = math.round(gain, 3) }), panelMarginX, PanelRow(1), panelFontSize, "") font:Print(textColor .. Spring.I18N('ui.scavs.bossAngerWithTech', { anger = gameInfo.scavBossAnger, techAnger = gameInfo.scavTechAnger}), panelMarginX, PanelRow(1), panelFontSize, "") - local totalSeconds = (100 - gameInfo.scavBossAnger) / gain + local totalSeconds = ((100 - gameInfo.scavBossAnger) / gain) + if currentTime <= gameInfo.scavGracePeriod then + totalSeconds = totalSeconds - math.min(30, (currentTime - gameInfo.scavGracePeriod + 30)) + end time = string.formatTime(totalSeconds) - font:Print(textColor .. Spring.I18N('ui.scavs.bossETA', { time = time }), panelMarginX+5, PanelRow(2), panelFontSize, "") + if totalSeconds < 1800 or revealedBossEta then + if not revealedBossEta then revealedBossEta = true end + font:Print(textColor .. Spring.I18N('ui.scavs.bossETA', { time = time }), panelMarginX+5, PanelRow(2), panelFontSize, "") + end if #currentlyResistantToNames > 0 then currentlyResistantToNames = {} currentlyResistantTo = {} @@ -155,9 +161,9 @@ local function CreatePanelDisplayList() font:Print(textColor .. currentlyResistantToNames[i], panelMarginX+20, PanelRow(12+i), panelFontSize, "") end end - else - font:Print(textColor .. Spring.I18N('ui.scavs.gracePeriod', { time = string.formatTime(math.ceil(((currentTime - gameInfo.scavGracePeriod) * -1) - 0.5)) }), panelMarginX, PanelRow(1), panelFontSize, "") - end + --else + -- font:Print(textColor .. Spring.I18N('ui.scavs.gracePeriod', { time = string.formatTime(math.ceil(((currentTime - gameInfo.scavGracePeriod) * -1) - 0.5)) }), panelMarginX, PanelRow(1), panelFontSize, "") + --end -- font:Print(textColor .. Spring.I18N('ui.scavs.scavKillCount', { count = gameInfo.scavKills }), panelMarginX, PanelRow(6), panelFontSize, "") local endless = "" @@ -174,10 +180,11 @@ end local function getMarqueeMessage(scavEventArgs) local messages = {} - if scavEventArgs.type == "firstWave" then - messages[1] = textColor .. Spring.I18N('ui.scavs.firstWave1') - messages[2] = textColor .. Spring.I18N('ui.scavs.firstWave2') - elseif scavEventArgs.type == "boss" then + --if scavEventArgs.type == "firstWave" then + -- messages[1] = textColor .. Spring.I18N('ui.scavs.firstWave1') + -- messages[2] = textColor .. Spring.I18N('ui.scavs.firstWave2') + --else + if scavEventArgs.type == "boss" then messages[1] = textColor .. Spring.I18N('ui.scavs.bossIsAngry1') messages[2] = textColor .. Spring.I18N('ui.scavs.bossIsAngry2') elseif scavEventArgs.type == "airWave" then diff --git a/luaui/Widgets/gui_top_bar.lua b/luaui/Widgets/gui_top_bar.lua index 245546c5712..98c35c8bd73 100644 --- a/luaui/Widgets/gui_top_bar.lua +++ b/luaui/Widgets/gui_top_bar.lua @@ -60,7 +60,7 @@ local xPos = math_floor(vsx * relXpos) local currentWind = 0 local gameStarted = (Spring.GetGameFrame() > 0) local displayComCounter = false -local displayTidalSpeed = not (Spring.GetModOptions().map_waterislava or Game.waterDamage > 0) +local displayTidalSpeed = not Spring.Lava.isLavaMap local updateTextClock = os.clock() local glTranslate = gl.Translate diff --git a/luaui/Widgets/gui_transport_weight_limit.lua b/luaui/Widgets/gui_transport_weight_limit.lua index 6761d8622bf..770e624cb47 100644 --- a/luaui/Widgets/gui_transport_weight_limit.lua +++ b/luaui/Widgets/gui_transport_weight_limit.lua @@ -110,8 +110,8 @@ function widget:SelectionChanged(sel) elseif selectedUnitsCount > 1 then for i = 1, #selectedUnits do local unitID = selectedUnits[i] - local unitdefID = Spring.GetUnitDefID(unitID) - if validTrans[unitdefID] then + local unitDefID = Spring.GetUnitDefID(unitID) + if validTrans[unitDefID] then transID = unitID transDefID = unitDefID unitcount = unitcount + 1 diff --git a/luaui/Widgets/gui_turret_trans_range.lua b/luaui/Widgets/gui_turret_trans_range.lua new file mode 100644 index 00000000000..bae7fbe0e19 --- /dev/null +++ b/luaui/Widgets/gui_turret_trans_range.lua @@ -0,0 +1,110 @@ +function widget:GetInfo() + return { + name = "Nano range on transport", + desc = "Draw a circle around a transport carrying a nano when its about to unload", + author = "Cheva", + date = "December 2024", + license = "GNU GPL, v2 or later", + layer = 0, + enabled = true + } +end + +-------------------------------------------------------------------------------- +--vars +-------------------------------------------------------------------------------- +local circleDivisions = 96 +local range +local isTransportableBuilding = {} +local turretRange = {} +local transportWithBuilding = {} +local isTurret = {} +local color + +-------------------------------------------------------------------------------- +--speedups +-------------------------------------------------------------------------------- +local CMD_UNLOAD_UNITS = CMD.UNLOAD_UNITS +local spGetActiveCmd = Spring.GetActiveCommand +local GetSelectedUnitsSorted = Spring.GetSelectedUnitsSorted +local glColor = gl.Color +local glLineWidth = gl.LineWidth +local glDrawGroundCircle = gl.DrawGroundCircle + +-------------------------------------------------------------------------------- +--configurations +-------------------------------------------------------------------------------- +local colors = { + tower = { 1.0, 0.22, 0.05, 0.5 }, + turret = { 0.24, 1.0, 0.2, 0.40 }, +} + +for unitDefId, unitDef in pairs(UnitDefs) do + if unitDef.isStaticBuilder and not unitDef.isFactory then + isTransportableBuilding[unitDefId] = true + turretRange[unitDefId] = unitDef.buildDistance + isTurret[unitDefId] = true + end + if unitDef.isBuilding and not unitDef.cantBeTransported then + isTransportableBuilding[unitDefId] = true + turretRange[unitDefId] = unitDef.maxWeaponRange + end +end + +-------------------------------------------------------------------------------- +--Transported Turret Range +-------------------------------------------------------------------------------- +local function DrawNanoRange(x, y, z, range) + glLineWidth(1) + glColor(color[1], color[2], color[3], color[4]) + glDrawGroundCircle(x, y, z, range, circleDivisions) + glColor(1,1,1,1) + glLineWidth(1) +end + +function widget:UnitLoaded(unitID, unitDefID, teamID, transportID) + if isTransportableBuilding[unitDefID] then + range = turretRange[unitDefID] + transportWithBuilding[transportID] = unitDefID + end +end + +function widget:UnitUnloaded(unitID, unitDefID, teamID, transportID) + transportWithBuilding[transportID] = nil +end + +function widget:UnitDestroyed(unitID, unitDefID, teamID, attackerID, attackerDefID, attackerTeamID) + transportWithBuilding[unitID] = nil +end + +function widget:DrawWorldPreUnit() + local _, cmdId, _, _ = spGetActiveCmd() + if cmdId ~= CMD_UNLOAD_UNITS then + return + end + local sel = GetSelectedUnitsSorted() + local ranges = {} + for _, unitIds in pairs(sel) do + for _, unitId in pairs(unitIds) do + if transportWithBuilding[unitId] then + table.insert(ranges, + { + unitDefID = transportWithBuilding[unitId], + range = turretRange[transportWithBuilding[unitId]] + }) + end + end + end + if #ranges == 0 then return end + table.sort(ranges, function(a, b) return a.range < b.range end) + range = ranges[1].range + if range == nil then return end + local turret = isTurret[ranges[1].unitDefID] + color = turret and colors.turret or colors.tower + --Spring.Echo(transportWithBuilding[unitId]) + local mouseX, mouseY = Spring.GetMouseState() + local desc, args = Spring.TraceScreenRay(mouseX, mouseY, true) + if desc == nil then return end + local x, y, z = args[1], args[2], args[3] + DrawNanoRange(x, y, z, range) +end diff --git a/luaui/Widgets/gui_vote_interface.lua b/luaui/Widgets/gui_vote_interface.lua index 62e39f6eb43..56ce19f22ec 100644 --- a/luaui/Widgets/gui_vote_interface.lua +++ b/luaui/Widgets/gui_vote_interface.lua @@ -10,6 +10,8 @@ function widget:GetInfo() } end +local L_DEPRECATED = LOG.DEPRECATED + local titlecolor = "\255\190\190\190" -- dont show vote buttons for specs when containing the following keywords (use lowercase) @@ -374,7 +376,7 @@ local function colourNames(teamID) end function widget:AddConsoleLine(lines, priority) - + if priority and priority == L_DEPRECATED then return end if not WG['rejoin'] or not WG['rejoin'].showingRejoining() then lines = lines:match('^%[f=[0-9]+%] (.*)$') or lines diff --git a/luaui/Widgets/map_edge_extension2.lua b/luaui/Widgets/map_edge_extension2.lua index 7bb28147c9a..cef523809bc 100644 --- a/luaui/Widgets/map_edge_extension2.lua +++ b/luaui/Widgets/map_edge_extension2.lua @@ -520,8 +520,7 @@ function widget:Initialize() widgetHandler:RemoveWidget() return end - VFS.Include("luarules/configs/lavaConfig.lua") - if lavaMap == true then + if Spring.Lava.isLavaMap == true then widgetHandler:RemoveWidget(self) end diff --git a/luaui/Widgets/map_startbox.lua b/luaui/Widgets/map_startbox.lua index dbee3fb53e4..05dad8e17a9 100644 --- a/luaui/Widgets/map_startbox.lua +++ b/luaui/Widgets/map_startbox.lua @@ -2,11 +2,12 @@ function widget:GetInfo() return { name = "Start Boxes", desc = "Displays Start Boxes and Start Points", - author = "trepan, jK", + author = "trepan, jK, Beherith", date = "2007-2009", license = "GNU GPL, v2 or later", layer = 0, - enabled = true + enabled = true, + depends = {'gl4'} } end @@ -42,25 +43,15 @@ local usedFontSize = fontSize local widgetScale = (1 + (vsx * vsy / 5500000)) -local msx = Game.mapSizeX -local msz = Game.mapSizeZ - -local xformList = 0 -local coneList = 0 -local startboxDListStencil = 0 -local startboxDListColor = 0 - local isSpec = Spring.GetSpectatingState() or Spring.IsReplay() local myTeamID = Spring.GetMyTeamID() -local flipped = false local placeVoiceNotifTimer = false local playedChooseStartLoc = false local amPlaced = false local gaiaTeamID -local gaiaAllyTeamID local startTimer = Spring.GetTimer() @@ -71,15 +62,6 @@ local GetTeamColor = Spring.GetTeamColor local glTranslate = gl.Translate local glCallList = gl.CallList -GL.KEEP = 0x1E00 -GL.INCR_WRAP = 0x8507 -GL.DECR_WRAP = 0x8508 -GL.INCR = 0x1E02 -GL.DECR = 0x1E03 -GL.INVERT = 0x150A - -local stencilBit1 = 0x01 -local stencilBit2 = 0x10 local hasStartbox = false local teamColors = {} @@ -101,34 +83,6 @@ function widget:PlayerChanged(playerID) myTeamID = Spring.GetMyTeamID() end -local function DrawMyBox(minX, minY, minZ, maxX, maxY, maxZ) - gl.BeginEnd(GL.QUADS, function() - --// top - gl.Vertex(minX, maxY, minZ) - gl.Vertex(maxX, maxY, minZ) - gl.Vertex(maxX, maxY, maxZ) - gl.Vertex(minX, maxY, maxZ) - --// bottom - gl.Vertex(minX, minY, minZ) - gl.Vertex(minX, minY, maxZ) - gl.Vertex(maxX, minY, maxZ) - gl.Vertex(maxX, minY, minZ) - end) - gl.BeginEnd(GL.QUAD_STRIP, function() - --// sides - gl.Vertex(minX, minY, minZ) - gl.Vertex(minX, maxY, minZ) - gl.Vertex(minX, minY, maxZ) - gl.Vertex(minX, maxY, maxZ) - gl.Vertex(maxX, minY, maxZ) - gl.Vertex(maxX, maxY, maxZ) - gl.Vertex(maxX, minY, minZ) - gl.Vertex(maxX, maxY, minZ) - gl.Vertex(minX, minY, minZ) - gl.Vertex(minX, maxY, minZ) - end) -end - local function createCommanderNameList(x, y, name, teamID) commanderNameList[teamID] = {} commanderNameList[teamID]['x'] = math.floor(x) @@ -202,16 +156,6 @@ function widget:LanguageChanged() createInfotextList() end -local function drawFormList() - gl.LoadIdentity() - if flipped then -- minimap is flipped - gl.Translate(1, 0, 0) - gl.Scale(-1 / msx, 1 / msz, 1) - else - gl.Translate(0, 1, 0) - gl.Scale(1 / msx, -1 / msz, 1) - end -end ---------------------------------- StartPolygons ---------------------------------- -- Note: this is now updated to support arbitrary start polygons via GL.SHADER_STORAGE_BUFFER @@ -265,7 +209,7 @@ local luaShaderDir = "LuaUI/Widgets/Include/" local LuaShader = VFS.Include(luaShaderDir.."LuaShader.lua") VFS.Include(luaShaderDir.."instancevbotable.lua") -local minY, maxY = Spring.GetGroundExtremes() +-- Spring.Echo('Spring.GetGroundExtremes', minY, maxY, waterlevel) local shaderSourceCache = { vssrcpath = "LuaUI/Widgets/Shaders/map_startpolygon_gl4.vert.glsl", @@ -282,14 +226,13 @@ local shaderSourceCache = { }, uniformFloat = { pingData = {0,0,0,-10000}, -- x,y,z, time + isMiniMap = 0, }, shaderName = "Start Polygons GL4", shaderConfig = { ALPHA = 0.5, NUM_POLYGONS = 0, NUM_POINTS = 0, - MINY = minY - 10, - MAXY = maxY + 100, MAX_STEEPNESS = math.cos(math.rad(54)), SCAV_ALLYTEAM_ID = scavengerAIAllyTeamID, -- these neatly become undefined if not present RAPTOR_ALLYTEAM_ID = raptorsAIAllyTeamID, @@ -301,7 +244,28 @@ local fullScreenRectVAO local startPolygonShader local startPolygonBuffer = nil -- GL.SHADER_STORAGE_BUFFER for polygon +local coneShaderSourceCache = { + vssrcpath = "LuaUI/Widgets/Shaders/map_startcone_gl4.vert.glsl", + fssrcpath = "LuaUI/Widgets/Shaders/map_startcone_gl4.frag.glsl", + uniformInt = { + mapDepths = 0, + flipMiniMap = 0, + }, + uniformFloat = { + isMiniMap = 0, + }, + shaderName = "Start Cones GL4", + shaderConfig = { + ALPHA = 0.5, + }, + silent = (not autoReload), +} + +local startConeVBOTable = nil +local startConeShader = nil + local function DrawStartPolygons(inminimap) + local advUnitShading, advMapShading = Spring.HaveAdvShading() if advMapShading then @@ -322,7 +286,7 @@ local function DrawStartPolygons(inminimap) startPolygonBuffer:BindBufferRange(4) - gl.Culling(GL.FRONT) + gl.Culling(true) gl.DepthTest(false) gl.DepthMask(false) @@ -339,10 +303,19 @@ local function DrawStartPolygons(inminimap) gl.Texture(2, false) gl.Texture(3, false) gl.Texture(4, false) - gl.Culling(GL.BACK) + gl.Culling(false) gl.DepthTest(false) end +local function DrawStartCones(inminimap) + startConeShader:Activate() + startConeShader:SetUniform("isMinimap", inminimap and 1 or 0) + startConeShader:SetUniformInt("flipMiniMap", getMiniMapFlipped() and 1 or 0) + startConeVBOTable:draw() + startConeShader:Deactivate() +end + + local function InitStartPolygons() local gaiaAllyTeamID if Spring.GetGaiaTeamID() then @@ -377,6 +350,15 @@ local function InitStartPolygons() shaderSourceCache.shaderConfig.NUM_BOXES = #StartPolygons + local minY, maxY = Spring.GetGroundExtremes() + local waterlevel = (Spring.GetModOption and Spring.GetModOptions().map_waterlevel) or 0 + if waterlevel > 0 then + minY = minY - waterlevel + maxY = maxY - waterlevel + end + shaderSourceCache.shaderConfig.MINY = minY - 1024 + shaderSourceCache.shaderConfig.MAXY = maxY + 1024 + local numvertices = 0 local bufferdata = {} local numPolygons = 0 @@ -410,12 +392,41 @@ local function InitStartPolygons() startPolygonShader = LuaShader.CheckShaderUpdates(shaderSourceCache) or startPolygonShader if not startPolygonShader then - Spring.Echo("Error: Norush Timer GL4 shader not initialized") + Spring.Echo("Error: startPolygonShader shader not initialized") widgetHandler:RemoveWidget() return end fullScreenRectVAO = MakeTexRectVAO() + local coneVBO, numConeVertices = makeConeVBO(32, 100, 25) + startConeVBOTable = makeInstanceVBOTable( + { + -- Cause 0-1-2 contain primitive per-vertex data + {id = 3, name = 'worldposradius', size = 4}, -- xpos, ypos, zpos, radius + {id = 4, name = 'teamColor', size = 4}, -- rgba + }, + 64, -- maxelements + "StartConeVBO" -- name + ) + startConeVBOTable.numVertices = numConeVertices + if startConeVBOTable == nil then + goodbye("Failed to create StartConeVBO") + widgetHandler:RemoveWidget() + return + end + + startConeVBOTable.vertexVBO = coneVBO + + startConeVBOTable.VAO = makeVAOandAttach(startConeVBOTable.vertexVBO,startConeVBOTable.instanceVBO) + + startConeShader = LuaShader.CheckShaderUpdates(coneShaderSourceCache) or startConeShader + + if not startConeShader then + Spring.Echo("Error: startConeShader shader not initialized") + widgetHandler:RemoveWidget() + return + end + end -------------------------------------------------------------------------------- @@ -432,32 +443,6 @@ function widget:Initialize() assignTeamColors() gaiaTeamID = Spring.GetGaiaTeamID() - if gaiaTeamID then - gaiaAllyTeamID = select(6, Spring.GetTeamInfo(gaiaTeamID, false)) - end - - -- flip and scale (using x & y for gl.Rect()) - xformList = gl.CreateList(drawFormList) - - -- cone list for world start positions - coneList = gl.CreateList(function() - local h = 100 - local r = 25 - local divs = 32 - gl.BeginEnd(GL.TRIANGLE_FAN, function() - gl.Vertex(0, h, 0) - for i = 0, divs do - local a = i * ((math.pi * 2) / divs) - local cosval = math.cos(a) - local sinval = math.sin(a) - gl.Vertex(r * sinval, 0, r * cosval) - end - end) - end) - local waterlevel = 0 - if Spring.GetModOptions().map_waterlevel ~= 0 then - waterlevel = Spring.GetModOptions().map_waterlevel - end createInfotextList() @@ -475,10 +460,6 @@ end local function removeLists() gl.DeleteList(infotextList) - gl.DeleteList(xformList) - gl.DeleteList(coneList) - gl.DeleteList(startboxDListStencil) - gl.DeleteList(startboxDListColor) removeTeamLists() end @@ -489,52 +470,24 @@ function widget:Shutdown() widgetHandler:DeregisterGlobal('GadgetCoopStartPoint') end -local function DrawStartboxes3dWithStencil() - gl.DepthMask(false) --"BK OpenGL state resets", default is already false, could remove - if gl.DepthClamp then - gl.DepthClamp(true) - end - - gl.DepthTest(true) - gl.StencilTest(true) - gl.ColorMask(false, false, false, false) - gl.Culling(false) - - gl.StencilOp(GL.KEEP, GL.INVERT, GL.KEEP) - - gl.CallList(startboxDListStencil) --// draw - - gl.Culling(GL.BACK) - gl.DepthTest(false) - - gl.ColorMask(true, true, true, true) - - gl.CallList(startboxDListColor) --// draw - - if gl.DepthClamp then - gl.DepthClamp(false) - end - gl.StencilTest(false) - gl.DepthTest(true) - gl.Culling(false) -end - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- function widget:DrawWorldPreUnit() if autoReload then startPolygonShader = LuaShader.CheckShaderUpdates(shaderSourceCache) or startPolygonShader + startConeShader = LuaShader.CheckShaderUpdates(coneShaderSourceCache) or startConeShader end DrawStartPolygons(false) end +local cacheTable = {} function widget:DrawWorld() gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) local time = Spring.DiffTimers(Spring.GetTimer(), startTimer) - + clearInstanceTable(startConeVBOTable) -- show the team start positions for _, teamID in ipairs(Spring.GetTeamList()) do local playerID = select(2, Spring.GetTeamInfo(teamID, false)) @@ -547,17 +500,21 @@ function widget:DrawWorld() if x ~= nil and x > 0 and z > 0 and y > -500 then local r, g, b = GetTeamColor(teamID) local alpha = 0.5 + math.abs(((time * 3) % 1) - 0.5) - gl.PushMatrix() - gl.Translate(x, y, z) - gl.Color(r, g, b, alpha) - gl.CallList(coneList) - gl.PopMatrix() + cacheTable[1], cacheTable[2], cacheTable[3], cacheTable[4] = x, y, z, 1 + cacheTable[5], cacheTable[6], cacheTable[7], cacheTable[8] = r, g, b, alpha + pushElementInstance(startConeVBOTable, + cacheTable, + nil, nil, true) if teamID == myTeamID then amPlaced = true end end end end + + uploadAllElements(startConeVBOTable) + + DrawStartCones(false) end function widget:DrawScreenEffects() @@ -595,45 +552,8 @@ function widget:DrawInMiniMap(sx, sz) widgetHandler:RemoveWidget() end - gl.PushMatrix() - gl.CallList(xformList) - gl.LineWidth(1.49) - - local gaiaAllyTeamID - local gaiaTeamID = Spring.GetGaiaTeamID() - if gaiaTeamID then - gaiaAllyTeamID = select(6, Spring.GetTeamInfo(gaiaTeamID, false)) - end - - -- show all start boxes DrawStartPolygons(true) - - -- show the team start positions - for _, teamID in ipairs(Spring.GetTeamList()) do - local playerID = select(2, Spring.GetTeamInfo(teamID, false)) - local _, _, spec = Spring.GetPlayerInfo(playerID, false) - if not spec and teamID ~= gaiaTeamID then - local x, y, z = Spring.GetTeamStartPosition(teamID) - if coopStartPoints[playerID] then - x, y, z = coopStartPoints[playerID][1], coopStartPoints[playerID][2], coopStartPoints[playerID][3] - end - if x ~= nil and x > 0 and z > 0 and y > -500 then - local r, g, b = GetTeamColor(teamID) - local time = Spring.DiffTimers(Spring.GetTimer(), startTimer) - local i = 2 * math.abs(((time * 3) % 1) - 0.5) - gl.PointSize(11) - gl.Color(i, i, i) - gl.BeginEnd(GL.POINTS, gl.Vertex, x, z) - gl.PointSize(7.5) - gl.Color(r, g, b) - gl.BeginEnd(GL.POINTS, gl.Vertex, x, z) - end - end - end - - gl.LineWidth(1.0) - gl.PointSize(1.0) - gl.PopMatrix() + DrawStartCones(true) end function widget:ViewResize(x, y) @@ -654,14 +574,7 @@ function widget:ViewResize(x, y) end -- reset needed when waterlevel has changed by gadget (modoption) -local resetsec = 0 -local resetted = false -local doWaterLevelCheck = false -if Spring.GetModOptions().map_waterlevel ~= 0 then - doWaterLevelCheck = true -end -local groundHeightPoint = Spring.GetGroundHeight(0, 0) local sec = 0 function widget:Update(delta) if Spring.GetGameFrame() > 1 then @@ -671,16 +584,6 @@ function widget:Update(delta) placeVoiceNotifTimer = os.clock() + 30 end - if (doWaterLevelCheck and not resetted) or (Spring.IsCheatingEnabled() and Spring.GetGroundHeight(0, 0) ~= groundHeightPoint) then - resetsec = resetsec + delta - if resetsec > 1 then - groundHeightPoint = Spring.GetGroundHeight(0, 0) - resetted = true - removeLists() - widget:Initialize() - end - end - if draftMode == nil or draftMode == "disabled" then -- otherwise draft mod will play it instead if not isSpec and not amPlaced and not playedChooseStartLoc and placeVoiceNotifTimer < os.clock() and WG['notifications'] then playedChooseStartLoc = true @@ -703,13 +606,6 @@ function widget:Update(delta) end end - local newFlipped = getMiniMapFlipped() - if flipped ~= newFlipped then - flipped = newFlipped - gl.DeleteList(xformList) - xformList = gl.CreateList(drawFormList) - end - if detectedChanges then removeLists() end diff --git a/luaui/Widgets/map_startpolygon_gl4.lua b/luaui/Widgets/map_startpolygon_gl4.lua index 3fc928d70ae..52b1f15ffd1 100644 --- a/luaui/Widgets/map_startpolygon_gl4.lua +++ b/luaui/Widgets/map_startpolygon_gl4.lua @@ -119,7 +119,7 @@ local function DrawStartPolygons(inminimap) startPolygonBuffer:BindBufferRange(4) - gl.Culling(GL.FRONT) + gl.Culling(true) gl.DepthTest(false) gl.DepthMask(false) diff --git a/luaui/Widgets/tweakdefs_unit_translations.lua b/luaui/Widgets/tweakdefs_unit_translations.lua new file mode 100644 index 00000000000..b8722017fd9 --- /dev/null +++ b/luaui/Widgets/tweakdefs_unit_translations.lua @@ -0,0 +1,40 @@ +function widget:GetInfo() + return { + name = "Tweakdefs Custom Unit Names", + desc = "Allow tweakdefs to override I18N entries for units", + author = "Centrifugal", + date = "Dec 20, 2024", + license = "GNU GPL, v2 or later", + layer = -1000000, -- must run before gui_language + enabled = true + } +end + +local function updateTranslations() + local currentLanguage = Spring.GetConfigString("language", "en") + + for unitDefName, unitDef in pairs(UnitDefNames) do + --Naming convention for language overrides + local nameKey = "i18n_" .. currentLanguage .. "_humanname" + local tooltipKey = "i18n_" .. currentLanguage .. "_tooltip" + + local customHumanName = unitDef.customParams[nameKey] + local customTooltip = unitDef.customParams[tooltipKey] + + if customHumanName then + Spring.I18N.set(currentLanguage .. '.units.names.' .. unitDefName, customHumanName) + end + + if customTooltip then + Spring.I18N.set(currentLanguage .. '.units.descriptions.' .. unitDefName, customTooltip) + end + end +end + +function widget:Initialize() + updateTranslations() +end + +function widget:LanguageChanged() + updateTranslations() +end \ No newline at end of file diff --git a/luaui/Widgets/unit_auto_group.lua b/luaui/Widgets/unit_auto_group.lua index 3391e12da5d..ef5066fd049 100644 --- a/luaui/Widgets/unit_auto_group.lua +++ b/luaui/Widgets/unit_auto_group.lua @@ -266,12 +266,7 @@ function widget:Shutdown() end function widget:UnitFinished(unitID, unitDefID, unitTeam) - if unitTeam ~= myTeam or unitID == nil then - return - end - - if GetUnitRulesParam(unitID, "resurrected") then - toBeAddedLater[unitID] = unitDefID + if unitTeam ~= myTeam or unitID == nil or GetUnitRulesParam(unitID, "resurrected") then return end @@ -312,6 +307,11 @@ function widget:UnitCreated(unitID, unitDefID, unitTeam, builderID) builtInPlace[unitID] = true end + if GetUnitRulesParam(unitID, "resurrected") then + toBeAddedLater[unitID] = unitDefID + return + end + if immediate then local gr = unit2group[unitDefID] if gr ~= nil then diff --git a/luaui/Widgets/unit_dgun_stall_assist.lua b/luaui/Widgets/unit_dgun_stall_assist.lua index 90aee129dae..23af99cce25 100644 --- a/luaui/Widgets/unit_dgun_stall_assist.lua +++ b/luaui/Widgets/unit_dgun_stall_assist.lua @@ -10,21 +10,19 @@ function widget:GetInfo() } end -local targetEnergy = 600 -local watchForTime = 5 +local watchForTime = 3 --How long to monitor the energy level after the dgun command is given ---------------------------------------------------------------- -- Globals ---------------------------------------------------------------- local watchTime = 0 +local targetEnergy = 0 local waitedUnits = nil -- nil / waitedUnits[1..n] = uID local shouldWait = {} local isFactory = {} local gameStarted -local stallIds = {UnitDefNames['armcom'].id, UnitDefNames['corcom'].id, UnitDefNames['legcom'] and UnitDefNames['legcom'].id} - ---------------------------------------------------------------- -- Speedups ---------------------------------------------------------------- @@ -69,7 +67,7 @@ function widget:Initialize() end for uDefID, uDef in pairs(UnitDefs) do - if uDef.buildSpeed > 0 and uDef.canAssist and not uDef.canManualFire then + if uDef.buildSpeed > 0 and not uDef.canManualFire and (uDef.canAssist or uDef.buildOptions[1]) then shouldWait[uDefID] = true if uDef.isFactory then isFactory[uDefID] = true @@ -85,9 +83,17 @@ function widget:Update(dt) local selection = Spring.GetSelectedUnitsCounts() local stallUnitSelected = false - for i = 1, #stallIds do - if selection[stallIds[i]] then - stallUnitSelected = true + for uDefID, _ in next, selection do + local uDef = UnitDefs[uDefID] + if uDef and uDef.canManualFire then + --Look for the weapondef with manual fire and energy cost + for _, wDef in next, uDef.wDefs do + if wDef.manualFire and wDef.energyCost and wDef.energyCost > 0 then + stallUnitSelected = true + targetEnergy = wDef.energyCost * 1.2 --Add some margin above the energy cost + break + end + end end end diff --git a/luaui/Widgets/unit_key_select.lua b/luaui/Widgets/unit_key_select.lua new file mode 100644 index 00000000000..41eeba6e90b --- /dev/null +++ b/luaui/Widgets/unit_key_select.lua @@ -0,0 +1,26 @@ +function widget:GetInfo() + return { + name = "KeySelect", + desc = "Selects units on keypress.", + author = "woss (Tyson Buzza)", + date = "Aug 24, 2024", + license = "Public Domain", + layer = 1, + enabled = false + } +end + +local selectApi = VFS.Include("luaui/Widgets/Include/select_api.lua") + +local function handleSetCommand(_, commandDef) + local command = selectApi.getCommand(commandDef) + command() +end + +function widget:Initialize() + widgetHandler:AddAction("select", handleSetCommand, nil, "p") +end + +function widget:Shutdown() + WG['keyselect'] = nil +end diff --git a/luaui/Widgets/unit_smart_select.lua b/luaui/Widgets/unit_smart_select.lua index bf0f45cec30..d0f7afed94a 100644 --- a/luaui/Widgets/unit_smart_select.lua +++ b/luaui/Widgets/unit_smart_select.lua @@ -1,4 +1,3 @@ - function widget:GetInfo() return { name = "SmartSelect", @@ -12,6 +11,8 @@ function widget:GetInfo() end local minimapToWorld = VFS.Include("luaui/Widgets/Include/minimap_utils.lua").minimapToWorld +local selectApi = VFS.Include("luaui/Widgets/Include/select_api.lua") + local skipSel local inSelection = false local inMiniMapSel = false @@ -30,7 +31,9 @@ local mods = { all = false, -- whether to select all units mobile = false, -- whether to select only mobile units } +local customFilterDef = "" local lastMods = mods +local lastCustomFilterDef = customFilterDef local lastMouseSelection = {} local lastMouseSelectionCount = 0 @@ -38,6 +41,7 @@ local spGetMouseState = Spring.GetMouseState local spGetModKeyState = Spring.GetModKeyState local spGetSelectionBox = Spring.GetSelectionBox +local spGetCommandQueue = Spring.GetCommandQueue local spIsGodModeEnabled = Spring.IsGodModeEnabled local spGetUnitsInScreenRectangle = Spring.GetUnitsInScreenRectangle @@ -49,7 +53,6 @@ local spGetUnitTeam = Spring.GetUnitTeam local spIsAboveMiniMap = Spring.IsAboveMiniMap local spGetUnitDefID = Spring.GetUnitDefID -local spGetCommandQueue = Spring.GetCommandQueue local spGetUnitNoSelect = Spring.GetUnitNoSelect local GaiaTeamID = Spring.GetGaiaTeamID() @@ -63,6 +66,8 @@ local combatFilter = {} local builderFilter = {} local buildingFilter = {} local mobileFilter = {} +local customFilter = {} + for udid, udef in pairs(UnitDefs) do if udef.modCategories['object'] or udef.customParams.objectify then ignoreUnits[udid] = true @@ -106,11 +111,23 @@ local function GetUnitsInMinimapRectangle(x, y) return spGetUnitsInRectangle(left, bottom, right, top) end -local function setModifier(_, _, _, data) +local function handleSetModifier(_, _, _, data) mods[data[1]] = data[2] end + +local function handleSetCustomFilter(_, ruleDef) + customFilter = selectApi.getFilter(ruleDef) + customFilterDef = ruleDef +end + +local function handleClearCustomFilter(_, _, _) + customFilter = {} + customFilterDef = "" +end + + function widget:ViewResize() dualScreen = Spring.GetMiniMapDualScreen() _, _, _, vpy = Spring.GetViewGeometry() @@ -213,11 +230,19 @@ function widget:Update() end end - if equalsMouseSelection and mods.idle == lastMods[1] and mods.same == lastMods[2] and mods.deselect == lastMods[3] and mods.all == lastMods[4] and mods.mobile == lastMods[5] then + if equalsMouseSelection + and mods.idle == lastMods[1] + and mods.same == lastMods[2] + and mods.deselect == lastMods[3] + and mods.all == lastMods[4] + and mods.mobile == lastMods[5] + and customFilterDef == lastCustomFilterDef + then return end lastMods = { mods.idle, mods.same, mods.deselect, mods.all, mods.mobile } + lastCustomFilterDef = customFilterDef -- Fill dictionary for set comparison -- We increase slightly the perf cost of cache misses but at the same @@ -231,12 +256,27 @@ function widget:Update() mouseSelection = tmp + if next(customFilter) ~= nil then -- use custom filter if it's not empty + tmp = {} + for i = 1, #mouseSelection do + uid = mouseSelection[i] + + if selectApi.unitPassesFilter(uid, customFilter) then + tmp[#tmp + 1] = uid + end + end + + if #tmp ~= 0 then -- treat the filter as a preference + mouseSelection = tmp -- if no units match, just keep everything + end + end + if mods.idle then tmp = {} for i = 1, #mouseSelection do uid = mouseSelection[i] udid = spGetUnitDefID(uid) - if (mobileFilter[udid] or builderFilter[udid]) and spGetCommandQueue(uid, 0) == 0 then + if spGetCommandQueue(uid, 0) == 0 then tmp[#tmp + 1] = uid end end @@ -312,7 +352,7 @@ function widget:Update() newSelection = referenceSelection end - if mods.deselect then -- deselect units inside the selection rectangle, if we already had units selected + if mods.deselect then -- deselect units inside the selection rectangle, if we already had units selected local negative = {} for i = 1, #mouseSelection do uid = mouseSelection[i] @@ -376,10 +416,13 @@ function widget:Initialize() WG.SmartSelect_MousePress2 = mousePress for modifierName, _ in pairs(mods) do - widgetHandler:AddAction("selectbox_" .. modifierName, setModifier, { modifierName, true }, "p") - widgetHandler:AddAction("selectbox_" .. modifierName, setModifier, { modifierName, false }, "r") + widgetHandler:AddAction("selectbox_" .. modifierName, handleSetModifier, { modifierName, true }, "p") + widgetHandler:AddAction("selectbox_" .. modifierName, handleSetModifier, { modifierName, false }, "r") end + widgetHandler:AddAction("selectbox", handleSetCustomFilter, nil, "p") + widgetHandler:AddAction("selectbox", handleClearCustomFilter, nil, "r") + WG['smartselect'] = {} WG['smartselect'].getIncludeBuildings = function() return selectBuildingsWithMobile diff --git a/luaui/barwidgets.lua b/luaui/barwidgets.lua index 35e881118f8..23ed896e06d 100644 --- a/luaui/barwidgets.lua +++ b/luaui/barwidgets.lua @@ -105,6 +105,7 @@ local flexCallIns = { 'ShockFront', 'WorldTooltip', 'MapDrawCmd', + 'ActiveCommandChanged', 'DefaultCommand', 'UnitCreated', 'UnitFinished', @@ -169,6 +170,7 @@ for _, ci in ipairs(flexCallIns) do end local callInLists = { + 'FontsChanged', 'GamePreload', 'GameStart', 'Shutdown', @@ -1342,6 +1344,14 @@ function widgetHandler:ConfigureLayout(command) return false end +function widgetHandler:ActiveCommandChanged(id, cmdType) + tracy.ZoneBeginN("W:ActiveCommandChanged") + for _, w in ipairs(self.ActiveCommandChangedList) do + w:ActiveCommandChanged(id, cmdType) + end + tracy.ZoneEnd() +end + function widgetHandler:CommandNotify(id, params, options) tracy.ZoneBeginN("W:CommandNotify") for _, w in ipairs(self.CommandNotifyList) do @@ -1658,6 +1668,14 @@ function widgetHandler:SunChanged() return end +function widgetHandler:FontsChanged() + tracy.ZoneBeginN("FontsChanged") + for _, w in r_ipairs(self.FontsChangedList) do + w:FontsChanged() + end + tracy.ZoneEnd() + return +end -------------------------------------------------------------------------------- -- diff --git a/luaui/callins.lua b/luaui/callins.lua index d530d1c4e76..f2ad183153a 100644 --- a/luaui/callins.lua +++ b/luaui/callins.lua @@ -15,6 +15,7 @@ CallInsList = { "Shutdown", "LayoutButtons", "ConfigureLayout", + "ActiveCommandChanged", "CommandNotify", "KeyPress", @@ -106,6 +107,8 @@ CallInsList = { "DrawShadowUnitsLua", "DrawShadowFeaturesLua", + "FontsChanged", + "SunChanged", "ShockFront", diff --git a/luaui/configs/DeferredLightsGL4WeaponsConfig.lua b/luaui/configs/DeferredLightsGL4WeaponsConfig.lua index 95dc94b5190..e175cbd8d25 100644 --- a/luaui/configs/DeferredLightsGL4WeaponsConfig.lua +++ b/luaui/configs/DeferredLightsGL4WeaponsConfig.lua @@ -31,7 +31,7 @@ local exampleLight = { dirx = 0, diry = 0, dirz = 1, theta = 0.5, -- cone lights only, specify direction and half-angle in radians pos2x = 100, pos2y = 100, pos2z = 100, -- beam lights only, specifies the endpoint of the beam modelfactor = 1, specular = 1, scattering = 1, lensflare = 1, - lifetime = 0, sustain = 1, selfshadowing = 0, + lifetime = 0, sustain = 1, aninmtype = 0, -- unused }, } @@ -53,8 +53,8 @@ local BaseClasses = { posx = 0, posy = 10, posz = 0, radius = 100, r = 1, g = 1, b = 1, a = 0.075, pos2x = 100, pos2y = 1000, pos2z = 100, -- beam lights only, specifies the endpoint of the beam - modelfactor = 1, specular = 0.5, scattering = 1.1, lensflare = 1, - lifetime = 0, sustain = 1, selfshadowing = 0, + modelfactor = 1, specular = 0.5, scattering = 0.1, lensflare = 1, + lifetime = 0, sustain = 1, aninmtype = 0, -- unused }, }, @@ -65,7 +65,7 @@ local BaseClasses = { r = 1, g = 0.8, b = 0.45, a = 0.11, --color2r = 0.5, color2g = 0.4, color2b = 0.23, colortime = 1.5, -- point lights only, colortime in seconds for unit-attached modelfactor = 0.5, specular = 0.6, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0, + lifetime = 0, sustain = 0, aninmtype = 0, -- unused }, }, @@ -77,7 +77,7 @@ local BaseClasses = { r = 1, g = 0.7, b = 0.2, a = 0.15, color2r = 0.6, color2g = 0.4, color2b = 0.10, colortime = 1.6, -- point lights only, colortime in seconds for unit-attached modelfactor = 0.3, specular = 0.1, scattering = 0.6, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0, + lifetime = 0, sustain = 0, aninmtype = 0, -- unused }, }, @@ -88,7 +88,7 @@ local BaseClasses = { r = 5, g = 0, b = 0, a = 1, dirx = 1, diry = 0, dirz = 1, theta = 0.02, -- cone lights only, specify direction and half-angle in radians modelfactor = 10, specular = 0.5, scattering = 1, lensflare = 1, - lifetime = 0, sustain = 1, selfshadowing = 0, + lifetime = 0, sustain = 1, aninmtype = 0, -- unused }, }, @@ -99,7 +99,7 @@ local BaseClasses = { r = 1, g = 1, b = 1, a = 1, dirx = 1, diry = 0, dirz = 1, theta = 0.15, -- cone lights only, specify direction and half-angle in radians modelfactor = 1, specular = 0, scattering = 1, lensflare = 1, - lifetime = 0, sustain = 1, selfshadowing = 0, + lifetime = 0, sustain = 1, aninmtype = 0, -- unused }, }, @@ -108,10 +108,10 @@ local BaseClasses = { fraction = 2, -- only spawn every nth light lightConfig = { posx = 0, posy = 15, posz = 0, radius = 25, - r = 1.0, g = 0.9, b = 0.5, a = 0.086, - color2r = 0.75, color2g = 0.45, color2b = 0.22, colortime = 12, -- point lights only, colortime in seconds for unit-attached - modelfactor = 0.2, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 23, sustain = 0, selfshadowing = 0, + r = 1.0, g = 0.9, b = 0.6, a = 0.086, + color2r = 0.75, color2g = 0.45, color2b = 0.22, colortime = 15, -- point lights only, colortime in seconds for unit-attached + modelfactor = 0.2, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 23, sustain = 0, aninmtype = 0, -- unused }, }, @@ -120,24 +120,10 @@ local BaseClasses = { yOffset = 0, -- Y offsets are only ever used for explosions! lightConfig = { posx = 0, posy = 0, posz = 0, radius = 240, - dirx = 0, diry = 10, dirz = 0, theta = 0.93, -- Give explosions a bit of a vertical bounce component r = 2, g = 2, b = 2, a = 0.6, color2r = 0.7, color2g = 0.55, color2b = 0.28, colortime = 0.1, -- point lights only, colortime in seconds for unit-attached modelfactor = 0.15, specular = 0.15, scattering = 0.4, lensflare = 1, - lifetime = 12, sustain = 3, selfshadowing = 4, - }, - }, - - ExplosionEMP = { -- spawned on explosions - lightType = 'point', -- or cone or beam - yOffset = 2, -- Y offsets are only ever used for explosions! - lightConfig = { - posx = 0, posy = 0, posz = 0, radius = 140, - dirx = 0, diry = 0.018, dirz = 0, theta = 0.93, - r = 2, g = 2, b = 4, a = 1.8, - color2r = 0.3, color2g = 0.3, color2b = 0.6, colortime = 1.4, -- point lights only, colortime in seconds for unit-attached - modelfactor = 0.15, specular = 0.15, scattering = 0.6, lensflare = 0, - lifetime = 90, sustain = 60, selfshadowing = 0, + lifetime = 12, sustain = 3, aninmtype = 0, -- unused }, }, @@ -148,7 +134,7 @@ local BaseClasses = { r = 2, g = 2, b = 2, a = 0.7, color2r = 0.75, color2g = 0.72, color2b = 0.6, colortime = 0, -- point lights only, colortime in seconds for unit-attached modelfactor = 0.8, specular = 0.5, scattering = 0.6, lensflare = 8, - lifetime = 6, sustain = 0.0035, selfshadowing = 0, + lifetime = 6, sustain = 0.0035, aninmtype = 0, -- unused }, }, } @@ -275,7 +261,7 @@ local gibLight = { r = 1, g = 0.9, b = 0.5, a = 0.08, color2r = 0.9, color2g = 0.75, color2b = 0.25, colortime = 0.3, -- point lights only, colortime in seconds for unit-attache modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 300, sustain = 3, selfshadowing = 0 + lifetime = 300, sustain = 3, aninmtype = 0 -- unused }, } @@ -290,7 +276,7 @@ local projectileDefLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 15, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.2, specular = 1, scattering = 1, lensflare = 1, - lifetime = 50, sustain = 20, selfshadowing = 0}, + lifetime = 50, sustain = 20, animtype = 0}, } } @@ -349,7 +335,7 @@ local function AssignLightsToAllWeapons() -- end if weaponDef.type == 'BeamLaser' then - --muzzleFlash = true + muzzleFlash = false if not weaponDef.paralyzer then @@ -357,7 +343,7 @@ local function AssignLightsToAllWeapons() t.color2r, t.color2g, t.color2b = r, g, b end - radius = (4.2 * (weaponDef.size * weaponDef.size * weaponDef.size)) + (5 * radius * orgMult) + radius = (3.5 * (weaponDef.size * weaponDef.size * weaponDef.size)) + (5 * radius * orgMult) t.a = (orgMult * 0.1) / (0.2 + weaponDef.beamtime) --projectileDefLights[weaponID].yOffset = 64 @@ -390,39 +376,27 @@ local function AssignLightsToAllWeapons() elseif weaponDef.type == 'MissileLauncher'then t.a = orgMult * 0.33 projectileDefLights[weaponID] = GetLightClass("MissileProjectile", "Warm", sizeclass, t) - + elseif weaponDef.type == 'StarburstLauncher' then t.a = orgMult * 0.44 - - if weaponDef.interceptor == 1 then - --t.a = orgMult * 1.33 - t.r, t.g, t.b = 0.5, 0.75, 1.0 - t.color2r, t.color2g, t.color2b = 0.22, 0.37, 0.79 - projectileDefLights[weaponID] = GetLightClass("MissileProjectile", "Cold", sizeclass, t) - else + projectileDefLights[weaponID] = GetLightClass("MissileProjectile", "Warm", sizeclass, t) sizeclass = GetClosestSizeClass(radius) radius = ((orgMult * 75) + (radius * 4)) * 0.4 life = 8 + (5*(radius/2000)+(orgMult * 5)) - projectileDefLights[weaponID] = GetLightClass("MissileProjectile", "Warm", sizeclass, t) - end - elseif weaponDef.type == 'Cannon' then t.a = orgMult*0.17 - radius = (radius + (weaponDef.size * 35)) * 0.48 + radius = (radius + (weaponDef.size * 35)) * 0.44 sizeclass = GetClosestSizeClass(radius) projectileDefLights[weaponID] = GetLightClass("CannonProjectile", "Plasma", sizeclass, t) radius = ((weaponDef.damageAreaOfEffect*2) + (weaponDef.damageAreaOfEffect * weaponDef.edgeEffectiveness * 1.35)) - projectileDefLights[weaponID].lightConfig.selfshadowing = 1 -- Screen Space Light Shadows elseif weaponDef.type == 'DGun' then muzzleFlash = true --doesnt work sizeclass = "Medium" - t.a = orgMult*0.66 * 1.5 + t.a = orgMult*0.66 projectileDefLights[weaponID] = GetLightClass("CannonProjectile", "Warm", sizeclass, t) projectileDefLights[weaponID].yOffset = 32 - projectileDefLights[weaponID].lightConfig.selfshadowing = 1 -- Screen Space Light Shadows - --Spring.Echo(WeaponDefNames[weaponID], weaponDef.type, weaponDef.name) elseif weaponDef.type == 'TorpedoLauncher' then sizeclass = "Small" @@ -439,7 +413,7 @@ local function AssignLightsToAllWeapons() elseif weaponDef.type == 'Flame' then --sizeclass = "Small" sizeclass = GetClosestSizeClass(radius*3) - t.a = orgMult * 0.17 * 2 + t.a = orgMult*0.17 * 2 projectileDefLights[weaponID] = GetLightClass("FlameProjectile", "Fire", sizeclass, t) end @@ -450,18 +424,11 @@ local function AssignLightsToAllWeapons() if scavenger then t.r, t.g, t.b = 0.99, 0.9, 1 end - t.a = orgMult*1.1 - t.colortime = 2.5 - - local adjusted_radius = radius * 0.55 - - if damage < 150 then -- increase muzzleflash for low-damage units to remain visible - adjusted_radius = adjusted_radius * 2.4 -- Increase for low-damage weapons - end - - muzzleFlashLights[weaponID] = GetLightClass("MuzzleFlash", "White", GetClosestSizeClass(adjusted_radius), t) + t.a = orgMult*1.15 + t.colortime = 2 + muzzleFlashLights[weaponID] = GetLightClass("MuzzleFlash", "White", GetClosestSizeClass(radius*0.6), t) muzzleFlashLights[weaponID].yOffset = muzzleFlashLights[weaponID].lightConfig.radius / 5 - end + end if explosionLight then if aa then @@ -471,8 +438,8 @@ local function AssignLightsToAllWeapons() t.r, t.g, t.b = 0.99, 0.9, 1 end t.lifetime = life - t.colortime = 37 / life --t.colortime = life * 0.17 - t.a = orgMult * 1.1 + t.colortime = 25 / life --t.colortime = life * 0.17 + t.a = orgMult if weaponDef.type == 'DGun' then t.a = orgMult*0.17 @@ -541,13 +508,12 @@ local function AssignLightsToAllWeapons() --t.colortime = 8 else -- make more white - t.r = (1.4 + t.r) / 1.3 - t.g = (1.4 + t.g) / 1.3 - t.b = (1.4 + t.b) / 1.3 + t.r = (1.4 + t.r) / 2.3 + t.g = (1.4 + t.g) / 2.3 + t.b = (1.4 + t.b) / 2.3 t.a = orgMult*1.6 end - local mult = 0.6 - + local mult = 0.55 t.color2r, t.color2g, t.color2b = r*mult, g*mult, b*mult sizeclass = GetClosestSizeClass(radius) end @@ -572,7 +538,7 @@ explosionLightsNames["cortrem_tremor_focus_fire"] = GetLightClass("Explosion", nil, "Tiny", {colortime = 3.5, sustain = 1, lifetime = 1, scattering = 0.7}) explosionLightsNames["cortrem_tremor_spread_fire"] = -GetLightClass("Explosion", nil, "Large", {colortime = 3.5, sustain = 1, lifetime = 1, scattering = 0.7}) +GetLightClass("Explosion", nil, "Tiny", {colortime = 3.5, sustain = 1, lifetime = 1, scattering = 0.7}) --corforge projectileDefLightsNames["corforge_flamethrower_ce"] = @@ -605,10 +571,7 @@ GetLightClass("Explosion", nil, "Large", {colortime = 4, sustain = 12, lifetime -- lifetime = 17, sustain = 2}) -- muzzleFlashLightsNames["corint_lrpc"].yOffset = 16 ---armstil -explosionLightsNames["armstil_stiletto_bomb"] = -GetLightClass("ExplosionEMP", nil, "Medium", { -}) + --armbrtha muzzleFlashLightsNames["armbrtha_lrpc"] = @@ -626,17 +589,12 @@ muzzleFlashLightsNames["armvulc_rflrpc"] = GetLightClass("MuzzleFlash", nil, "Medium", {posx = 0, posy = 0, posz = 0, r = 1.2, g = 1.1, b = 1.0, a = 0.5, color2r = 0.3, color2g = 0.12, color2b = 0.05, colortime = 4, - modelfactor = 0.5, specular = 0.3, scattering = 0.8, lensflare = 14, - lifetime = 17, sustain = 2}) + modelfactor = 0.5, specular = 0.3, scattering = 2.8, lensflare = 4, + lifetime = 20, sustain = 2}) muzzleFlashLightsNames["armvulc_rflrpc"].yOffset = 4 explosionLightsNames["armvulc_rflrpc"] = GetLightClass("Explosion", nil, "Large", {colortime = 3.5, sustain = 14, lifetime = 26, scattering = 0.7}) --- projectileDefLightsNames["armvulc_rflrpc"] = --- GetLightClass("MissileProjectile", "Warm", "Large", {a = 1.6, --- modelfactor = 0.1, specular = 0.1, scattering = 0.2, lensflare = 0}) - - --corbuzz muzzleFlashLightsNames["corbuzz_rflrpc"] = GetLightClass("MuzzleFlash", nil, "Medium", {posx = 0, posy = 0, posz = 0, @@ -649,15 +607,6 @@ explosionLightsNames["corbuzz_rflrpc"] = GetLightClass("Explosion", nil, "Large", {colortime = 3.5, sustain = 14, lifetime = 26, scattering = 0.7}) --- --cortex anitnuke engine exhaust --- projectileDefLightsNames["corfmd_fmd_rocket"] = --- GetLightClass("MissileProjectile", "Cold", "MediumLarge", {a = 0.6, --- --r = 0.1, g = 0.5, b = 1.0, --- modelfactor = 0.1, specular = 0.1, scattering = 0.5, lensflare = 0, --- color2r = 0.22, color2g = 0.37, color2b = 0.79, colortime = 5, --- }) - - --corsilo explosionLightsNames["corsilo_crblmssl"] = GetLightClass("Explosion", nil, "Tera", {r = 3, g = 3, b = 2.8, a = 0.2, @@ -687,23 +636,9 @@ GetLightClass("MissileProjectile", nil, "Large", {r = 2, g = 1, b = 3, a = 0.4, explosionLightsNames["armsilo_nuclear_missile"] = GetLightClass("Explosion", nil, "Giga", {r = 3, g = 3, b = 2.8, a = 0.18, color2r = 1.0, color2g = 0.6, color2b = 0.18, colortime = 110, - sustain = 25, lifetime = 180, selfshadowing = 4, - modelfactor = 0.1, specular = 0.2, scattering = 0.1, lensflare = 4}) - - --armsilo -explosionLightsNames["armguardnuke_plasma"] = -GetLightClass("Explosion", nil, "Giga", {r = 3, g = 2.9, b = 2.8, a = 0.18, - posx = 0, posy = 1, posz = 0, - dirx = 0, diry = -0.12, dirz = 0, - color2r = 1.0, color2g = 0.6, color2b = 0.18, colortime = 110, - sustain = 25, lifetime = 155, selfshadowing = 3, + sustain = 25, lifetime = 180, modelfactor = 0.1, specular = 0.2, scattering = 0.1, lensflare = 4}) -projectileDefLightsNames["armguardnuke_plasma"] = -GetLightClass("MissileProjectile", "Warm", "Medium", {a = 0.4, - modelfactor = 0.1, specular = 0.1, scattering = 0.5, lensflare = 0}) - - --armsilo engine projectileDefLightsNames["armsilo_nuclear_missile"] = GetLightClass("MissileProjectile", "Warm", "Large", {a = 0.6, @@ -829,65 +764,33 @@ GetLightClass("MissileProjectile", "Warm", "Small", {a = 0.60, modelfactor = 0.1, specular = 0.01, scattering = 0.5, lensflare = 8}) --corkorg -explosionLightsNames["corkorg_corkorg_laser"] = -GetLightClass("Explosion", "Fire", "Smallish", {r = 0.54, g = 0.45, b = 0.12, a = 0.33, - color2r = 1.2, color2g = 0.5, color2b = 0.2, colortime = 0.3, - sustain = 2, lifetime = 3, - modelfactor = -0.3, specular = -0.1, scattering = 1.95, lensflare = 0}) - - projectileDefLightsNames["corkorg_corkorg_laser"] = -GetLightClass("LaserProjectile", nil, "Medium", {a = 0.10, - r = 1.0, g = 0.65, b = 0.1, radius = 240, - color2r = 0.33, color2g = 0.05, color2b = 0.03, colortime = 3, +GetLightClass("LaserProjectile", nil, "Medium", {a = 0.08, + r = 1.0, g = 0.65, b = 0.1, + color2r = 0.3, color2g = 0.1, color2b = 0.03, colortime = 10, pos2x = 0, pos2y = 100, pos2z = 0, modelfactor = 0.5, specular = 0.05, scattering = 0.05, lensflare = 16, - selfshadowing = 8, - lifetime = 6, sustain = 2}) + lifetime = 60, sustain = 4}) muzzleFlashLightsNames["corkorg_corkorg_laser"] = -GetLightClass("MuzzleFlash", "Fire", "Mega", {posx = 120, posy = 82, posz = 0, +GetLightClass("MuzzleFlash", nil, "Large", {posx = 0, posy = 48, posz = 0, r = 1.2, g = 1.1, b = 0.5, a = 0.9, - color2r = 0.3, color2g = 0.12, color2b = 0.05, colortime = 20, + color2r = 0.3, color2g = 0.12, color2b = 0.05, colortime = 10, modelfactor = 0.5, specular = 0.3, scattering = 2.8, lensflare = 9, lifetime = 120, sustain = 4}) ---muzzleflashes for corkorg broken?? --- muzzleFlashLightsNames["corkorg_corkorg_fire"] = --- GetLightClass("MuzzleFlash", "Plasma", "Tiny", { --- r = 1.0, g = 0.75, b = 0.2, a = 0.3, --- color2r = 0.3, color2g = 0.08, color2b = 0.03, colortime = 10, --- modelfactor = 0.3, specular = 0.3, scattering = 0.2, lensflare = 0, --- lifetime = 9, sustain = 2}) +muzzleFlashLightsNames["corkorg_corkorg_laser"].yOffset = 32 --corkorg_shotgun projectileDefLightsNames["corkorg_corkorg_fire"] = -GetLightClass("CannonProjectile", "Plasma", "Smaller", {a = 0.012, radius = 200, - selfshadowing = 4, - modelfactor = 0.2, specular = 0.2, scattering = 0.3, lensflare = 3}) - -explosionLightsNames["corkorg_corkorg_fire"] = -GetLightClass("Explosion", "Fire", "Tiny", {r = 0.5, g = 0.3, b = 0.08, a = 0.4, - color2r = 1.2, color2g = 0.6, color2b = 0.4, colortime = 0.6, - sustain = 2, lifetime = 6, - modelfactor = -0.3, specular = -0.1, scattering = 1.95, lensflare = 0 - }) - +GetLightClass("CannonProjectile", "Plasma", "Smaller", {a = 0.04, + modelfactor = 0.2, specular = 0.05, scattering = 0.3, lensflare = 3}) --corkorg_rocket projectileDefLightsNames["corkorg_corkorg_rocket"] = -GetLightClass("MissileProjectile", "Warm", "SmallMedium", {a = 0.40, - r = 1.2, g = 0.65, b = 0.1, radius = 80, - color2r = 1.2, color2g = 0.7, color2b = 0.4, +GetLightClass("MissileProjectile", "Warm", "SmallMedium", {a = 0.60, modelfactor = 0.5, specular = 0.05, scattering = 0.45, lensflare = 5}) -explosionLightsNames["corkorg_corkorg_rocket"] = -GetLightClass("Explosion", "Fire", "Medium", {r = 0.4, g = 0.2, b = 0.08, a = 0.5, radius = 240, - color2r = 1.2, color2g = 0.9, color2b = 0.4, - sustain = 4, lifetime = 10, - --modelfactor = -0.3, specular = -0.1, scattering = 1.95, lensflare = 0 - }) - --corkorg_scav projectileDefLightsNames["corkorg_scav_corkorg_laser"] = GetLightClass("LaserProjectile", "Purple", "Large", {a = 0.15, @@ -945,41 +848,6 @@ GetLightClass("Explosion", "Green", "Largest", {a = 0.6, sustain = 10, lifetime = 400, modelfactor = 0.1, specular = 0.2, scattering = 0.3, lensflare = 6}) -muzzleFlashLightsNames["armpw_emg"] = -GetLightClass("MuzzleFlash", "Warm", "Medium", {posx = 1, posy = 1, posz = 1, radius = 50, - r = 1.2, g = 1.1, b = 1.0, a = 0.5, - color2r = 0.3, color2g = 0.12, color2b = 0.05, colortime = 4, - modelfactor = 0.5, specular = 0.3, scattering = 0.8, lensflare = 14, - lifetime = 17, sustain = 2}) - ---armmanni -projectileDefLightsNames["armmanni_atam"] = -GetLightClass("LaserProjectile", "Blue", "SmallMedium", {a = 0.09, - color2r = 0.6, color2g = 0.6, color2b = 0.6, colortime = 10, - modelfactor = 0.5, specular = 0.1, scattering = 0.7, lensflare = 0, - selfshadowing = 8, - lifetime = 0, sustain = 0}) - ---corjugg -explosionLightsNames["corjugg_juggernaut_fire"] = -GetLightClass("Explosion", nil, "Small", {r = 1.3, g = 1.1, b = 0.8, a = 0.4, - color2r = 0.35, color2g = 0.20, color2b = 0.05, colortime = 3, - sustain = 4, lifetime = 20, scattering = 0.2}) - -projectileDefLightsNames["corjugg_juggernaut_fire"] = -GetLightClass("CannonProjectile", nil, "Large", {a = 0.5, - color2r = 0.5, color2g = 0.5, color2b = 0.6, colortime = 10, - modelfactor = 0.5, specular = 0.1, scattering = 0.1, lensflare = 0, - lifetime = 26, sustain = 20}) - --- --armanni -projectileDefLightsNames["armanni_ata"] = -GetLightClass("LaserProjectile", "Blue", "Medium", {a = 0.09, - color2r = 0.5, color2g = 0.5, color2b = 0.6, colortime = 10, - modelfactor = 0.5, specular = 0.1, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0}) - - --corjuno SCAV projectileDefLightsNames["corjuno_scav_juno_pulse"] = GetLightClass("MissileProjectile", "Green", "Medium", {r = 0.8, g = 0.4, b = 1.5, a = 0.45, @@ -998,16 +866,18 @@ GetLightClass("Explosion", "Fire", "SmallMedium", {r = 0.54, g = 0.45, b = 0.12, color2r = 1.2, color2g = 0.5, color2b = 0.2, colortime = 0.03, sustain = 40, lifetime = 150, modelfactor = 0.3, specular = 0.8, scattering = 1.5, lensflare = 0}) - - - - --duplicate lights from scavengerbossv4_normal_turbo_napalm for all scavengerbossv4 variants, including _scav +--duplicate lights from scavengerbossv4_normal_turbo_napalm for all scavengerbossv4 variants, including _scav local scavengerBossV4Table = {'scavengerbossv4_veryeasy_turbo_napalm', 'scavengerbossv4_easy_turbo_napalm', 'scavengerbossv4_hard_turbo_napalm', 'scavengerbossv4_veryhard_turbo_napalm', 'scavengerbossv4_epic_turbo_napalm', 'scavengerbossv4_veryeasy_scav_turbo_napalm', 'scavengerbossv4_easy_scav_turbo_napalm', 'scavengerbossv4_normal_scav_turbo_napalm', 'scavengerbossv4_hard_scav_turbo_napalm', 'scavengerbossv4_veryhard_scav_turbo_napalm', 'scavengerbossv4_epic_scav_turbo_napalm'} for _, name in pairs(scavengerBossV4Table) do explosionLightsNames[name] = table.copy(explosionLightsNames['scavengerbossv4_normal_turbo_napalm']) end - +-- --armanni +-- projectileDefLightsNames["armanni_ata"] = +-- GetLightClass("LaserProjectile", "Blue", "Medium", {a = 0.09, +-- color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 4, +-- modelfactor = 0.5, specular = 0.1, scattering = 0.1, lensflare = 0, +-- lifetime = 0, sustain = 0}) -- --armannit3 -- projectileDefLightsNames["armannit3_ata"] = diff --git a/luaui/configs/DeferredLightsGL4config.lua b/luaui/configs/DeferredLightsGL4config.lua index c0be17ba327..8ff6700dcfc 100644 --- a/luaui/configs/DeferredLightsGL4config.lua +++ b/luaui/configs/DeferredLightsGL4config.lua @@ -26,7 +26,7 @@ local exampleLight = { -- beam lights only, specifies the endpoint of the beam: pos2x = 100, pos2y = 100, pos2z = 100, modelfactor = 1, specular = 1, scattering = 1, lensflare = 1, - lifetime = 0, sustain = 1, selfshadowing = 0 + lifetime = 0, sustain = 1, aninmtype = 0 -- unused }, } @@ -36,106 +36,70 @@ local unitLights = { ['armpw'] = { - headlightpw = { -- this is the lightname - lightType = 'cone', - pieceName = 'head', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 2, posz = 1, radius = 50, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.29, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = -0.5, specular = -1.5, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, + -- headlightpw = { -- this is the lightname + -- lightType = 'cone', + -- pieceName = 'justattachtobase', -- invalid ones will attach to the worldpos of the unit + -- lightConfig = { posx = 0, posy = 23, posz = 7, radius = 80, + -- dirx = 0, diry = -0.07, dirz = 1, theta = 0.27, + -- r = 1, g = 1, b = 0.89, a = 0.45, + -- modelfactor = -0.5, specular = -1.5, scattering = 1.8, lensflare = 1, + -- lifetime = 0, sustain = 0, animtype = 0}, + -- }, eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 2.0, posz = 8.3, radius = 5, - color2r = 0.6, color2g = 0.5, color2b = 0.4, colortime = 30, - r = 1.2, g = 1, b = 0.25, a = 0.8, - modelfactor = 0.8, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 1.5, posz = 5, radius = 9, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.09, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, arm1 = { lightType = 'point', pieceName = 'lgun', - lightConfig = { posx = 0, posy = 0, posz = 3.5, radius = 2, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 9, color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, - r = 1.2, g = 1, b = 0.25, a = 1, - modelfactor = 0.8, specular = 0.6, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.25, a = 0.09, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2 = { lightType = 'point', pieceName = 'rgun', - lightConfig = { posx = 0, posy = 0, posz = 3.5, radius = 2, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 10, color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, - r = 1.2, g = 1, b = 0.25, a = 1, - modelfactor = 0.8, specular = 0.6, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backpack1 = { - lightType = 'point', - pieceName = 'head', - lightConfig = { posx = 4, posy = 3.5, posz = -8, radius = 3.5, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 2.5, - modelfactor = 0.2, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backpack2 = { - lightType = 'point', - pieceName = 'head', - lightConfig = { posx = -4, posy = 3.5, posz = -8, radius = 3.5, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 2.5, - modelfactor = 0.2, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.25, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armwar'] = { - arm1 = { + arm1 = { -- looks like arm movement is different and light isnt fixed in place :/ lightType = 'point', pieceName = 'luparm', - lightConfig = { posx = 7.5, posy = 1.5, posz = 0, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 1, b = 0.25, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 5.5, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.07, + modelfactor = 0.2, specular = 1, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - arm2 = { + arm2 = { -- looks like arm movement is different and light isnt fixed in place :/ lightType = 'point', pieceName = 'ruparm', - lightConfig = { posx = -7.5, posy = 1.5, posz = 0, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 1, b = 0.25, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 5.5, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.07, + modelfactor = 0.2, specular = 1, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlight = { + front = { -- looks like arm movement is different and light isnt fixed in place :/ lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 11, posz = 8.5, radius = 7, + lightConfig = { posx = 0, posy = 11, posz = 7, radius = 10, color2r = 0.8, color2g = 0.9, color2b = 1, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 0.7, + r = 0.8, g = 0.9, b = 1, a = 0.16, modelfactor = 0.3, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { -- - lightType = 'cone', - pieceName = 'torso', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 11, posz = 5, radius = 40, - dirx = 0, diry = -0.12, dirz = 1, theta = 0.5, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - toplight = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 17, posz = -10, radius = 7, - color2r = 1, color2g = 1, color2b = 1, colortime = -2, - r = -1, g = 1, b = 1, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfatf'] = { @@ -146,43 +110,43 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 12, r = 0, g = 1.5, b = 0, a = 0.8, modelfactor = 0.8, specular = 0.9, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 20, selfshadowing = 0}, + lifetime = 0, sustain = 20, animtype = 0}, }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -27, posy = 6.5, posz = 6, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -27, posy = 5, posz = 6, radius = 16, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10, posy = 6.5, posz = 28, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10, posy = 5, posz = 28, radius = 16, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 21, posy = 6.5, posz = -19.5, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 21, posy = 5, posz = -19.5, radius = 16, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -19, posy = 6.5, posz = -19, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -19, posy = 5, posz = -19, radius = 16, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfrad'] = { @@ -193,7 +157,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', @@ -202,7 +166,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', @@ -211,7 +175,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', @@ -220,7 +184,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', @@ -229,7 +193,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -238,7 +202,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -247,7 +211,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -256,7 +220,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -265,18 +229,18 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armamex'] = { mid1 = { lightType = 'point', pieceName = 'dish', - lightConfig = { posx = 0, posy = 34, posz = 0, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 34, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsonar'] = { @@ -287,7 +251,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', @@ -296,7 +260,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', @@ -305,7 +269,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', @@ -314,63 +278,54 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armrad'] = { greenblob = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 38, posz = 0, radius = 20, + lightConfig = { posx = 0, posy = 72, posz = 0, radius = 20, color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -8, posy = -15.5, posz = 0, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8, posy = 25.5, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 8, posy = -15.5, posz = 0, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8, posy = 25.5, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = -15.5, posz = 8, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 25.5, posz = 8, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = -15.5, posz = -8, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - radarwhite = { - lightType = 'point', - pieceName = 'dish', - lightConfig = { posx = 0, posy = 0, posz = -9, radius = 32, - color2r = 1, color2g = 1, color2b = 1, colortime = -2, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.1, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 25.5, posz = -8, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corrad'] = { @@ -381,18 +336,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corfrad'] = { - greenblob = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 82, posz = 0, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.60000002, - modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -404,45 +348,45 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armferret'] = { base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 17, posy = 12, posz = 0, radius = 8, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 17, posy = 12, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -17, posy = 12, posz = 0, radius = 8, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -17, posy = 12, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 12, posz = 17, radius = 8, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 12, posz = 17, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 12, posz = -17, radius = 8, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 12, posz = -17, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legrhapsis'] = { @@ -453,7 +397,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.12, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armkraken'] = { @@ -464,7 +408,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -473,7 +417,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -482,7 +426,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -491,7 +435,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -500,7 +444,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -509,7 +453,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back3 = { lightType = 'point', @@ -518,7 +462,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back4 = { lightType = 'point', @@ -527,7 +471,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', @@ -536,7 +480,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -545,7 +489,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front3 = { lightType = 'point', @@ -554,7 +498,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front4 = { lightType = 'point', @@ -563,7 +507,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armflak'] = { @@ -574,7 +518,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -583,7 +527,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -592,7 +536,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -601,7 +545,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret1 = { lightType = 'point', @@ -610,7 +554,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret2 = { lightType = 'point', @@ -619,7 +563,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfflak'] = { @@ -630,7 +574,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -639,7 +583,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -648,7 +592,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -657,7 +601,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -665,204 +609,101 @@ local unitLights = { top = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 4, posz = -5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 1, b = 0.2, a = 0.9, + lightConfig = { posx = 0, posy = 3.5, posz = -5, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - depthchargeflash = { + topside1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = -1, posz = -22.2, radius = 1.9, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -19, posy = -1, posz = 0, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topsideanim1 = { + topside2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -19, posy = -1, posz = 0, radius = 5, - dirx = 0, diry = 0, dirz = 0.5, theta = -11.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 60, - r = 1.1, g = 1, b = 0.2, a = 1.8, - modelfactor = 0.6, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 19, posy = -1, posz = 0, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topsideanim2 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 19, posy = -1, posz = 0, radius = 5, - dirx = 0, diry = 0, dirz = 0.5, theta = -11.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 60, - r = 1.1, g = 1, b = 0.2, a = 1.8, - modelfactor = 0.6, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- topside1 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = -19, posy = -1, posz = 0, radius = 33, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- topside2 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 19, posy = -1, posz = 0, radius = 33, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -16, posy = 14, posz = -16, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.35, - modelfactor = 0.4, specular = 0, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16, posy = 7, posz = -9.2, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -16, posy = 14, posz = 16, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.35, - modelfactor = 0.4, specular = 0, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16, posy = 7, posz = 9.2, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 16, posy = 14, posz = -16, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.35, - modelfactor = 0.4, specular = 0, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 16, posy = 7, posz = -9.2, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 16, posy = 14, posz = 16, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.35, - modelfactor = 0.4, specular = 0, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- base5 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -9.2, posy = 7, posz = -16, radius = 8, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base6 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -9.2, posy = 7, posz = 16, radius = 8, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base7 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 9.2, posy = 7, posz = -16, radius = 8, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base8 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 9.2, posy = 7, posz = 16, radius = 8, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['cordl'] = { - depthchargeflashl = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 7.5, posy = 50.6, posz = -7, radius = 1.5, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashr = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -7.5, posy = 50.6, posz = -7, radius = 1.5, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashfl = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 7.5, posy = 50.6, posz = 7, radius = 1.5, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashfr = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -7.5, posy = 50.6, posz = 7, radius = 1.5, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 16, posy = 7, posz = 9.2, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - base1 = { + base5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 8, posz = -12, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.8, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9.2, posy = 7, posz = -16, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - base2 = { + base6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 8, posz = 12, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.8, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9.2, posy = 7, posz = 16, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - base3 = { + base7 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12, posy = 8, posz = -12, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.8, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 9.2, posy = 7, posz = -16, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - base4 = { + base8 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12, posy = 8, posz = 12, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.8, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 9.2, posy = 7, posz = 16, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmark'] = { @@ -873,27 +714,27 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corvoyr'] = { greenblob = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 12, posz = 0, radius = 14, + lightConfig = { posx = 0, posy = 11, posz = 0, radius = 18, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.44, - modelfactor = 0.6, specular = 0.6, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0, g = 1, b = 0, a = 0.22, + modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna = { lightType = 'point', pieceName = 'torso', lightConfig = { posx = -3.7, posy = 17, posz = -1.3, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 0.4, a = 0.8, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.12, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backside = { lightType = 'point', @@ -902,259 +743,94 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, headlight = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 7.5, posz = 6.5, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.8, + lightConfig = { posx = 0, posy = 7.5, posz = 6.5, radius = 5, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.14, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, dish1 = { lightType = 'point', pieceName = 'dish1', - lightConfig = { posx = -8.1, posy = 0, posz = 0, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 0.3, a = 0.9, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8, posy = 0, posz = 0, radius = 6.5, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.13, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, dish2 = { lightType = 'point', pieceName = 'dish2', - lightConfig = { posx = 8.1, posy = 0, posz = 0, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 1, b = 0.3, a = 0.9, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8, posy = 0, posz = 0, radius = 6.5, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.13, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cortrem'] = { - eyesfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -2.8, posy = 11.6, posz = 22.5, radius = 2, - pos2x = 2.8, pos2y = 11.6, pos2z = 22.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesright = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -3.8, posy = 11.6, posz = 22.5, radius = 2, - pos2x = -3.8, pos2y = 11.6, pos2z = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesleft = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.8, posy = 11.6, posz = 22.5, radius = 2, - pos2x = 3.8, pos2y = 11.6, pos2z = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretright = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -10.9, posy = 14.5, posz = 1.0, radius = 1.5, - pos2x = -10.9, pos2y = 14.5, pos2z = -1.2, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = -1, g = 0.2, b = 0.2, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretright2 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -12.3, posy = 13.1, posz = 1.0, radius = 1.5, - pos2x = -12.3, pos2y = 13.1, pos2z = -1.2, - color2r = -100, color2g = 0, color2b = 0, colortime = 30, - r = 0, g = 0, b = 0, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretleft = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 10.9, posy = 14.5, posz = 1.0, radius = 1.5, - pos2x = 10.9, pos2y = 14.5, pos2z = -1.2, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = -1, g = 0.2, b = 0.2, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretleft2 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 12.3, posy = 13.1, posz = 1.0, radius = 1.5, - pos2x = 12.3, pos2y = 13.1, pos2z = -1.2, - color2r = -100, color2g = 0, color2b = 0, colortime = 30, - r = 0, g = 0, b = 0, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 11, posz = 19, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.1, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 5, posz = 15, radius = 55, colortime = -2, - dirx = 0, diry = -0.3, dirz = 1, theta = 0.8, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightr = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -16, posy = 9, posz = 15, radius = 30, colortime = -2, - dirx = -0.6, diry = -0.5, dirz = 1, theta = 0.5, - r = 1, g = 1, b = 0.89, a = 0.25, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightl = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 16, posy = 9, posz = 15, radius = 30, colortime = -2, - dirx = 0.6, diry = -0.5, dirz = 1, theta = 0.5, - r = 1, g = 1, b = 0.89, a = 0.25, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11, posz = 19, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corvroc'] = { - eyesfront = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.5, posy = 23.8, posz = 22.5, radius = 2, - pos2x = 8.5, pos2y = 23.8, pos2z = 22.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 23.5, posz = 21, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesright = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2, posy = 23.8, posz = 22.5, radius = 2, - pos2x = 2, pos2y = 23.8, pos2z = 13.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 11, posy = 23.5, posz = 14, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesleft = { - lightType = 'beam', + eyes3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 9, posy = 23.8, posz = 22.5, radius = 2, - pos2x = 9, pos2y = 23.8, pos2z = 13.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0.5, posy = 23.5, posz = 14, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - redglowl = { + }, + ['armseer'] = { + greenblob = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 4.4, posy = -6, posz = 21, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'eye', + lightConfig = { posx = 0, posy = 5.5, posz = 0, radius = 17, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0, g = 1, b = 0, a = 0.60000002, + modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - redglowr = { + front = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -4.4, posy = -6, posz = 21, radius = 3.5, - color2r = -100, color2g = 0, color2b = 0, colortime = 120, - r = 0, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlauncherleft = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -4.4, posy = -9.5, posz = 8, radius = 4.9, - dirx = 0, diry = 0, dirz = 1, theta = -6.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlauncherright = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 4.4, posy = -9.5, posz = 8, radius = 4.9, - dirx = 0, diry = 0, dirz = 1, theta = -6.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 5, posy = 23.5, posz = 21, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 11, posy = 23.5, posz = 14, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0.5, posy = 23.5, posz = 14, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['armseer'] = { - greenblob = { - lightType = 'point', - pieceName = 'eye', - lightConfig = { posx = 0, posy = 5.5, posz = 0, radius = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.60000002, - modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front = { - lightType = 'point', - pieceName = 'eye', - lightConfig = { posx = 0, posy = 0, posz = 5, radius = 10, - color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.065, - modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'eye', + lightConfig = { posx = 0, posy = 0, posz = 5, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corvrad'] = { @@ -1165,83 +841,35 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.45, modelfactor = 0.8, specular = 0.9, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -2, posy = 9.1, posz = 12.5, radius = 2, - pos2x = 2, pos2y = 9.1, pos2z = 12.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesright = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -2, posy = 9.1, posz = 12.5, radius = 2, - pos2x = -2, pos2y = 9.1, pos2z = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesleft = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2, posy = 9.1, posz = 12.5, radius = 2, - pos2x = 2, pos2y = 9.1, pos2z = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = 15.5, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - back1 = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -9, posy = 7, posz = -15.5, radius = 2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0, g = 1, b = 0, a = 2, - modelfactor = 0.7, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 8, posz = 8, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - back2 = { + eyes3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 9, posy = 7, posz = -15.5, radius = 2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0, g = 1, b = 0, a = 2, - modelfactor = 0.7, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 8, posz = 8, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 8, posz = 15.5, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4, posy = 8, posz = 8, radius = 9, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4, posy = 8, posz = 8, radius = 9, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armarad'] = { greenblob = { @@ -1251,7 +879,7 @@ local unitLights = { color2r = 0, color2g = 2, color2b = 0, colortime = 40, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -1260,7 +888,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -1269,7 +897,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -1278,7 +906,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -1287,7 +915,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, basemid1 = { lightType = 'point', @@ -1296,7 +924,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, basemid2 = { lightType = 'point', @@ -1305,7 +933,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, basemid3 = { lightType = 'point', @@ -1314,7 +942,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, basemid4 = { lightType = 'point', @@ -1323,7 +951,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -1335,7 +963,7 @@ local unitLights = { color2r = 0, color2g = 2, color2b = 0, colortime = 40, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -1347,7 +975,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 40, r = 0, g = 1.5, b = 0, a = 0.8, modelfactor = 0.8, specular = 0.9, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 20, selfshadowing = 0}, + lifetime = 0, sustain = 20, animtype = 0}, }, }, @@ -1355,120 +983,84 @@ local unitLights = { searchlight = { lightType = 'cone', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 5, posz = 3, radius = 380, + lightConfig = { posx = 0, posy = 5, posz = 5.8, radius = 380, dirx = 0, diry = 0, dirz = 1, theta = 0.24, r = 0.95, g = 0.95, b = 0.88, a = 0.4, - modelfactor = -0.4, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 5, posz = 6.5, radius = 7, - color2r = 0.8, color2g = 0.9, color2b = 1, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = -0.4, specular = -1.5, scattering = 1.8, lensflare = 2, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -9, posy = 10, posz = 9, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9, posy = 10, posz = 9, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 9, posy = 10, posz = 9, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 9, posy = 10, posz = 9, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -9, posy = 10, posz = -9, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9, posy = 10, posz = -9, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 9, posy = 10, posz = -9, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 9, posy = 10, posz = -9, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 34, posz = -9.5, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8.5, posy = 34, posz = 0, radius = 17, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 34, posz = 9.5, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8.5, posy = 34, posz = 0, radius = 17, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- topteam = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -3.4, posy = 61, posz = 8, radius = 5, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 45, - -- r = -1, g = 1, b = 1, a = 1.5, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - topteamback1 = { + sidetop1 = { lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 2, posz = -14, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = -1, g = 1, b = 1, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -10.5, posy = 56, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topteamback2 = { + sidetop2 = { lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = -3, posz = -14, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = -1, g = 1, b = 1, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 10.5, posy = 56, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- sidetop1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -10.5, posy = 56, posz = 0, radius = 7, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = -1, - -- r = -1, g = 1, b = 1, a = 1.5, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- sidetop2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 10.5, posy = 56, posz = 0, radius = 7, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = -1, - -- r = -1, g = 1, b = 1, a = 1, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corllt'] = { searchlight = { @@ -1477,38 +1069,9 @@ local unitLights = { lightConfig = { posx = 0, posy = 5, posz = 5.8, radius = 380, dirx = 0, diry = 0, dirz = 1, theta = 0.24, r = 0.95, g = 0.95, b = 0.88, a = 0.4, - modelfactor = -0.8, specular = -0.3, scattering = 1.8, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtopfrontleft = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 4.8, posy = 3, posz = 2.9, radius = 4, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = -0.4, specular = -1.5, scattering = 1.8, lensflare = 2, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamtopfrontright = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -4.8, posy = 3, posz = 2.9, radius = 4, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- topteamback1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 32, posz = 0, radius = 9.5, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 45, - -- r = -1, g = 1, b = 1, a = 1.5, - -- modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corhllt'] = { searchlight = { @@ -1518,97 +1081,8 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.22, r = 0.95, g = 0.95, b = 0.88, a = 0.4, modelfactor = -0.4, specular = -1.5, scattering = 2, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teambotleft = { - lightType = 'point', - pieceName = 'turret1', - lightConfig = { posx = 4.8, posy = 3.5, posz = 2.9, radius = 4, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teambotright = { - lightType = 'point', - pieceName = 'turret1', - lightConfig = { posx = -4.8, posy = 3.5, posz = 2.9, radius = 4, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtopleft = { - lightType = 'point', - pieceName = 'turret2', - lightConfig = { posx = 4.8, posy = 3.5, posz = 2.9, radius = 4, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtopright = { - lightType = 'point', - pieceName = 'turret2', - lightConfig = { posx = -4.8, posy = 3.5, posz = 2.9, radius = 4, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corhlt'] = { - searchlight = { - lightType = 'cone', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 0, posz = 5.8, radius = 320, - dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 0.95, g = 0.95, b = 0.88, a = 0.4, - modelfactor = -0.8, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 0, posz = 7.8, radius = 8, - color2r = 0.8, color2g = 0.9, color2b = 1, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 1.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtopfrontleft = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 3.8, posy = 27, posz = -11, radius = 3.5, - dirx = 0, diry = 0, dirz = 1, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamtopfrontright = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -3.8, posy = 27, posz = -11, radius = 3.5, - dirx = 0, diry = 0, dirz = 1, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- topteamback1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 32, posz = 0, radius = 9.5, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 45, - -- r = -1, g = 1, b = 1, a = 1.5, - -- modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armmercury'] = { base2 = { @@ -1618,156 +1092,136 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armbeamer'] = { searchlight = { lightType = 'cone', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = -8, posz = 0, radius = 430, - dirx = 0, diry = 0, dirz = 1, theta = 0.18, + lightConfig = { posx = 0, posy = 5, posz = 5.8, radius = 430, + dirx = 0, diry = 0, dirz = 1, theta = 0.22, r = 0.95, g = 0.95, b = 0.88, a = 0.4, - modelfactor = -0.4, specular = -1.5, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = -0.4, specular = -1.5, scattering = 1.8, lensflare = 2, + lifetime = 0, sustain = 0, animtype = 0}, }, glow = { lightType = 'point', pieceName = 'barrel', - lightConfig = { posx = 0, posy = 0, posz = 6, radius = 17, + lightConfig = { posx = 0, posy = 0, posz = 6, radius = 16, color2r = 0, color2g = 0.07, color2b = 0.65, colortime = 45, r = 0, g = 0.15, b = 1.5, a = 1, modelfactor = 1, specular = 1, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topanimright = { - lightType = 'point', - pieceName = 'barrel', - lightConfig = { posx = -5, posy = 2.9, posz = -24.5, radius = 2, - dirx = 0, diry = 0, dirz = 1, theta = -10.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 1, b = 1, a = 1.8, - modelfactor = 0.6, specular = 0.4, scattering = 4.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topanimleft = { - lightType = 'point', - pieceName = 'barrel', - lightConfig = { posx = 5, posy = 2.9, posz = -24.5, radius = 2, - dirx = 0, diry = 0, dirz = 1, theta = -10.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 1, b = 1, a = 1.8, - modelfactor = 0.6, specular = 0.4, scattering = 4.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 8, posz = 0, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.4, a = 0.33, - modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = 0, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 8, posz = 8, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.4, a = 0.33, - modelfactor = 0.2, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = 8, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 8, posz = -8, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.4, a = 0.33, - modelfactor = 0.2, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = -8, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top4back = { + top4 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 7, posz = -13, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.4, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7, posz = -13, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = -13, posy = -4.5, posz = 13, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 13, posy = -4.5, posz = 13, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = -13, posy = -4.5, posz = -13, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 13, posy = -4.5, posz = -13, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + base5 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -13, posy = -22, posz = 13, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + base6 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 13, posy = -22, posz = 13, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + base7 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -13, posy = -22, posz = -13, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + base8 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 13, posy = -22, posz = -13, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- base5 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -13, posy = -22, posz = 13, radius = 12, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base6 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 13, posy = -22, posz = 13, radius = 12, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base7 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -13, posy = -22, posz = -13, radius = 12, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base8 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 13, posy = -22, posz = -13, radius = 12, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armassistdrone_land'] = { buildlight = { -- this is the lightname @@ -1777,7 +1231,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.8, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -1786,7 +1240,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.8, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -1795,7 +1249,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.2, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['corassistdrone_land'] = { @@ -1806,7 +1260,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -1815,7 +1269,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -1824,7 +1278,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.2, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['armnanotct2'] = { @@ -1835,7 +1289,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.4, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cornanotct2'] = { @@ -1846,7 +1300,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.4, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legnanotc'] = { @@ -1857,7 +1311,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.4, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legnanotcplat'] = { @@ -1867,64 +1321,55 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 1, radius = 33, color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.4, - modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armnanotc'] = { nanolight = { lightType = 'point', pieceName = 'emitnano', - lightConfig = { posx = 0, posy = 2, posz = 2, radius = 16, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 19, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 1, - modelfactor = 0.5, specular = 0.3, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanoflash = { - lightType = 'point', - pieceName = 'aim', - lightConfig = { posx = 0, posy = 5, posz = 0.5, radius = 10, - color2r = -15, color2g = -15, color2b = -15, colortime = 45, - r = 1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.25, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, corner1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5, posy = 26.3, posz = 5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 26.3, posz = 5, radius = 14, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, corner2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5, posy = 26.3, posz = 5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 26.3, posz = 5, radius = 14, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, corner3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5, posy = 26.3, posz = -5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 26.3, posz = -5, radius = 14, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, corner4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5, posy = 26.3, posz = -5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, + lightConfig = { posx = 5, posy = 26.3, posz = -5, radius = 14, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cornanotc'] = { @@ -1935,25 +1380,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanopassive = { - lightType = 'point', - pieceName = 'aim', - lightConfig = { posx = 0, posy = 6, posz = 14.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanoflash = { - lightType = 'point', - pieceName = 'aim', - lightConfig = { posx = 0, posy = 15, posz = 0, radius = 8, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armhlt'] = { @@ -1964,70 +1391,70 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.18, r = 0.95, g = 0.95, b = 0.88, a = 0.4, modelfactor = -0.3, specular = -1.2, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = -10, posz = 15, radius = 7.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -10, posz = 10, radius = 25, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = -10, posz = -15, radius = 7.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -10, posz = -10, radius = 25, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = -10, posz = 0, radius = 7.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10, posy = -10, posz = 0, radius = 25, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15, posy = -10, posz = 0, radius = 7.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, + lightConfig = { posx = 10, posy = -10, posz = 0, radius = 25, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, top = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 24, posz = 0, radius = 9, - color2r = -5, color2g = -5, color2b = -5, colortime = 20, - r = 0, g = 1.5, b = 0, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 19, posz = 0, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, gun1 = { lightType = 'point', pieceName = 'gunl', - lightConfig = { posx = -13, posy = 0, posz = 15, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.15, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -13, posy = 0, posz = 15, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, gun2 = { lightType = 'point', pieceName = 'gunr', - lightConfig = { posx = 13, posy = 0, posz = 15, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.15, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 13, posy = 0, posz = 15, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfhlt'] = { @@ -2038,181 +1465,162 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.18, r = 0.95, g = 0.95, b = 0.88, a = 0.4, modelfactor = -0.3, specular = -1.2, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, float1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -19, posy = 8, posz = 19, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -19, posy = 8, posz = 19, radius = 20, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, float2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 19, posy = 8, posz = 19, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 19, posy = 8, posz = 19, radius = 20, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, float3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -19, posy = 8, posz = -19, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -19, posy = 8, posz = -19, radius = 20, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, float4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 19, posy = 8, posz = -19, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 19, posy = 8, posz = -19, radius = 20, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 28, posz = 0, radius = 8, - color2r = -5, color2g = -5, color2b = -5, colortime = 20, - r = 0, g = 1.5, b = 0, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 23, posz = 0, radius = 16, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- topglow = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 0, posy = 26, posz = 0, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.2, g = 1, b = 0.4, a = 0.3, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, gun1 = { lightType = 'point', pieceName = 'gunl', - lightConfig = { posx = -13, posy = 0, posz = 15, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.15, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -13, posy = 0, posz = 15, radius = 14, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, gun2 = { lightType = 'point', pieceName = 'gunr', - lightConfig = { posx = 13, posy = 0, posz = 15, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.15, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 13, posy = 0, posz = 15, radius = 14, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armrl'] = { searchlight = { lightType = 'cone', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 0, posz = 7, radius = 450, colortime = -1.5, - dirx = 0, diry = 0, dirz = 1, theta = 0.2, + lightConfig = { posx = 0, posy = 0, posz = 7, radius = 450, + dirx = 0, diry = 0, dirz = 1, theta = 0.2, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - toplights = { - lightType = 'beam', + top1 = { + lightType = 'point', pieceName = 'launcher', - lightConfig = { posx = 0, posy = 11, posz = 5, radius = 4, - pos2x = 0, pos2y = 11, pos2z = -15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 0.4, a = 0.5, - modelfactor = 0.3, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- top1 = { - -- lightType = 'point', - -- pieceName = 'launcher', - -- lightConfig = { posx = 0, posy = 14, posz = 1, radius = 15, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top2 = { - -- lightType = 'point', - -- pieceName = 'launcher', - -- lightConfig = { posx = 0, posy = 12, posz = -4, radius = 15, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top3 = { - -- lightType = 'point', - -- pieceName = 'launcher', - -- lightConfig = { posx = 0, posy = 12, posz = -11, radius = 15, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top4 = { - -- lightType = 'point', - -- pieceName = 'launcher', - -- lightConfig = { posx = 0, posy = 12, posz = -18, radius = 15, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- topback1 = { - -- lightType = 'point', - -- pieceName = 'launcher', - -- lightConfig = { posx = 0, posy = 0, posz = -28, radius = 17, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- topback2 = { - -- lightType = 'point', - -- pieceName = 'launcher', - -- lightConfig = { posx = -7, posy = 0, posz = -25.5, radius = 17, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- topback3 = { - -- lightType = 'point', - -- pieceName = 'launcher', - -- lightConfig = { posx = 7, posy = 0, posz = -25.5, radius = 17, - -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, + lightConfig = { posx = 0, posy = 14, posz = 1, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top2 = { + lightType = 'point', + pieceName = 'launcher', + lightConfig = { posx = 0, posy = 12, posz = -4, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top3 = { + lightType = 'point', + pieceName = 'launcher', + lightConfig = { posx = 0, posy = 12, posz = -11, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top4 = { + lightType = 'point', + pieceName = 'launcher', + lightConfig = { posx = 0, posy = 12, posz = -18, radius = 21, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + topback1 = { + lightType = 'point', + pieceName = 'launcher', + lightConfig = { posx = 0, posy = 0, posz = -28, radius = 17, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + topback2 = { + lightType = 'point', + pieceName = 'launcher', + lightConfig = { posx = -7, posy = 0, posz = -25.5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + topback3 = { + lightType = 'point', + pieceName = 'launcher', + lightConfig = { posx = 7, posy = 0, posz = -25.5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, basetop1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -9, posy = 20, posz = 3, radius = 10, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9, posy = 21, posz = -1, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, basetop2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 9, posy = 20, posz = 3, radius = 10, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9, posy = 21, posz = -1, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfrt'] = { @@ -2223,7 +1631,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.2, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -2232,7 +1640,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -2241,7 +1649,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -2250,7 +1658,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', @@ -2259,7 +1667,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topback1 = { lightType = 'point', @@ -2268,7 +1676,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topback2 = { lightType = 'point', @@ -2277,7 +1685,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topback3 = { lightType = 'point', @@ -2286,7 +1694,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, basetop1 = { lightType = 'point', @@ -2295,7 +1703,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, basetop2 = { lightType = 'point', @@ -2304,101 +1712,18 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corrl'] = { searchlight = { lightType = 'cone', pieceName = 'turret', - lightConfig = { posx = 0, posy = 2, posz = 7, radius = 450, colortime = -2, - dirx = 0, diry = 0, dirz = 1, theta = 0.2, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.2, posy = 3, posz = -11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.2, posy = 3, posz = -11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.2, posy = 3, posz = 11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa14 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.2, posy = 3, posz = 11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corfrt'] = { - searchlight = { - lightType = 'cone', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 2, posz = 7, radius = 450, colortime = -2, + lightConfig = { posx = 0, posy = 2, posz = 7, radius = 450, dirx = 0, diry = 0, dirz = 1, theta = 0.2, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.2, posy = 17, posz = -11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.2, posy = 17, posz = -11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.2, posy = 17, posz = 11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - footaa14 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.2, posy = 17, posz = 11.2, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcir'] = { @@ -2407,49 +1732,9 @@ local unitLights = { pieceName = 'spindle', lightConfig = { posx = 0, posy = 0, posz = 7, radius = 475, dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, colortime = -1.5, + r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelights1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -1, posy = 20, posz = 19, radius = 4, - pos2x = 1, pos2y = 20, pos2z = 19, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelights2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -1, posy = 20, posz = -19, radius = 4, - pos2x = 1, pos2y = 20, pos2z = -19, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelights3 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -19, posy = 20, posz = -1, radius = 4, - pos2x = -19, pos2y = 20, pos2z = 1, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelights4 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 19, posy = 20, posz = -1, radius = 4, - pos2x = 19, pos2y = 20, pos2z = 1, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormadsam'] = { @@ -2458,455 +1743,270 @@ local unitLights = { pieceName = 'launcher', lightConfig = { posx = 0, posy = 0, posz = 2, radius = 475, dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, colortime = -1.5, - modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa1 = { - lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = -13.5, posy = 9.0, posz = 7.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa2 = { - lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = 13.5, posy = 9.0, posz = 7.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corflak'] = { - searchlight = { - lightType = 'cone', - pieceName = 'gunbase', - lightConfig = { posx = 0, posy = 2, posz = 2, radius = 475, - dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, colortime = -1.5, - modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa1 = { - lightType = 'point', - pieceName = 'gunbase', - lightConfig = { posx = -11.5, posy = 3.0, posz = 35.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa2 = { - lightType = 'point', - pieceName = 'gunbase', - lightConfig = { posx = 11.5, posy = 3.0, posz = 35.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corenaa'] = { - searchlight = { - lightType = 'cone', - pieceName = 'gunbase', - lightConfig = { posx = 0, posy = 2, posz = 2, radius = 475, - dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, colortime = -1.5, - modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa1 = { - lightType = 'point', - pieceName = 'gunbase', - lightConfig = { posx = -11.5, posy = 3.0, posz = 35.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa2 = { - lightType = 'point', - pieceName = 'gunbase', - lightConfig = { posx = 11.5, posy = 3.0, posz = 35.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corfrock'] = { - searchlight = { - lightType = 'cone', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 475, - dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, colortime = -1.5, - modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa1 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = -13.5, posy = 9.0, posz = 7.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa2 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 13.5, posy = 9.0, posz = 7.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corerad'] = { - searchlight = { - lightType = 'cone', - pieceName = 'turret', - lightConfig = { posx = -4, posy = 19, posz = 15, radius = 475, - dirx = -0.06, diry = 0.5, dirz = 1, theta = 0.08, - r = 1, g = 1, b = 1, a = 0.45, colortime = -1.5, - modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight2 = { - lightType = 'cone', - pieceName = 'turret', - lightConfig = { posx = 4, posy = 19, posz = 15, radius = 475, - dirx = 0.06, diry = 0.5, dirz = 1, theta = 0.08, - r = 1, g = 1, b = 1, a = 0.35, colortime = -1.5, - modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa1 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -21.0, posy = 23.0, posz = 0.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa2 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 21.0, posy = 23.0, posz = 0.0, radius = 4, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.45, + modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armjamt'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 15, posz = 0, radius = 25, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.9, + pieceName = 'turret', + lightConfig = { posx = 0, posy = 30, posz = 0, radius = 28, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6.5, posy = 21, posz = 6.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = -6.5, posy = 21, posz = 6.5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.5, posy = 21, posz = 6.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 6.5, posy = 21, posz = 6.5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6.5, posy = 21, posz = -6.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = -6.5, posy = 21, posz = -6.5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.5, posy = 21, posz = -6.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 6.5, posy = 21, posz = -6.5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['corshroud'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.9, - modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, + pieceName = 'base', + lightConfig = { posx = 0, posy = 53, posz = 0, radius = 30, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.5, + modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, }, ['armjuno'] = { top = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 68, posz = 0, radius = 24, - color2r = 0, color2g = 0, color2b = 0.2, colortime = -1, - r = 1.1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 0, posy = 57, posz = 0, radius = 35, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.15, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -11, posy = 24, posz = 11, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.75, + lightConfig = { posx = -11, posy = 24, posz = 11, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 11, posy = 24, posz = 11, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.75, + lightConfig = { posx = 11, posy = 24, posz = 11, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -11, posy = 24, posz = -11, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.75, + lightConfig = { posx = -11, posy = 24, posz = -11, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 11, posy = 24, posz = -11, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.75, + lightConfig = { posx = 11, posy = 24, posz = -11, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10.3, posy = 42, posz = 10.3, radius = 4, - color2r = -5, color2g = -5, color2b = -5, colortime = 45, - r = 1, g = 1, b = 0.2, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 1.2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = -10.3, posy = 42, posz = 10.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10.3, posy = 42, posz = 10.3, radius = 4, - color2r = -5, color2g = -5, color2b = -5, colortime = 45, - r = 1, g = 1, b = 0.2, a = 0.75, - modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 10.3, posy = 42, posz = 10.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, mid3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10.3, posy = 42, posz = -10.3, radius = 4, - color2r = -5, color2g = -5, color2b = -5, colortime = 45, - r = 1, g = 1, b = 0.2, a = 0.75, - modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = -10.3, posy = 42, posz = -10.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, mid4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10.3, posy = 42, posz = -10.3, radius = 4, - color2r = -5, color2g = -5, color2b = -5, colortime = 45, - r = 1, g = 1, b = 0.2, a = 0.75, - modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - }, - ['corjuno'] = { - top = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 68, posz = 0, radius = 24, - color2r = 0, color2g = 0, color2b = 0.2, colortime = -1, - r = 1.1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 10.3, posy = 42, posz = -10.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['armjam'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 2, posz = 0, radius = 20, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.7, + pieceName = 'base', + lightConfig = { posx = 0, posy = 21, posz = 0, radius = 22, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.42, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 16.5, posz = 13.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 16, posz = 13, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corjamt'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 25, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 1, + pieceName = 'base', + lightConfig = { posx = 0, posy = 44, posz = 0, radius = 28, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coreter'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 0, posz = -3.5, radius = 24, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.9, + pieceName = 'base', + lightConfig = { posx = 0, posy = 39, posz = -3.5, radius = 24, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.45, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesfront = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.4, posy = 11.6, posz = 19.5, radius = 2, - pos2x = 3.4, pos2y = 11.6, pos2z = 19.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 12, posz = 22, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesright = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.6, posy = 11.6, posz = 19.5, radius = 2, - pos2x = -3.6, pos2y = 11.6, pos2z = 13.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 12, posz = 17, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesleft = { - lightType = 'beam', + eyes3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.6, posy = 11.6, posz = 19.5, radius = 2, - pos2x = 3.6, pos2y = 11.6, pos2z = 13.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- nojamleft = { - -- lightType = 'beam', - -- pieceName = 'nojam', - -- lightConfig = { posx = 3.6, posy = 11.6, posz = 19.5, radius = 2, - -- pos2x = 3.6, pos2y = 11.6, pos2z = 13.5, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 10, - -- r = 1.2, g = 0.2, b = 0.2, a = 2.2, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -11, posy = 14.5, posz = -0.3, radius = 2, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- base2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 11, posy = 14.5, posz = -0.3, radius = 2, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - nojamleft = { + lightConfig = { posx = -5, posy = 12, posz = 17, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + base1 = { lightType = 'point', - pieceName = 'nojam', - lightConfig = { posx = -11, posy = 14.5, posz = -0.3, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 1, g = 0.2, b = 0.2, a = 1.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -11.5, posy = 15.5, posz = -0.3, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - nojamright = { + base2 = { lightType = 'point', - pieceName = 'nojam', - lightConfig = { posx = 11, posy = 14.5, posz = -0.3, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 1, g = 0.2, b = 0.2, a = 1.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 11.5, posy = 15.5, posz = -0.3, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armaser'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = -5, posy = 0, posz = 0, radius = 22, - color2r = 0, color2g = 0, color2b = 0, colortime = -3, - r = 1, g = 0, b = 0, a = 0.7, + pieceName = 'torso', + lightConfig = { posx = 0, posy = 33, posz = -3.5, radius = 25, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.4, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corspec'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.9, + pieceName = 'head', + lightConfig = { posx = 0, posy = 11, posz = 5, radius = 18, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.4, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armveil'] = { cloaklightred = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 35, + pieceName = 'turret', + lightConfig = { posx = 0, posy = 42, posz = 0, radius = 35, color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0, b = 0, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret1 = { lightType = 'point', @@ -2915,7 +2015,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret2 = { lightType = 'point', @@ -2924,7 +2024,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret3 = { lightType = 'point', @@ -2933,7 +2033,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret4 = { lightType = 'point', @@ -2942,7 +2042,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -2951,7 +2051,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -2960,7 +2060,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -2969,7 +2069,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -2978,7 +2078,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -2993,7 +2093,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -3002,7 +2102,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', @@ -3011,7 +2111,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, @@ -3022,7 +2122,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0.3, b = 0.0, a = 1, modelfactor = 0.1, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, r2 = { lightType = 'point', @@ -3031,7 +2131,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0.3, b = 0.0, a = 1, modelfactor = 0.1, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, r3 = { lightType = 'point', @@ -3040,7 +2140,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0.3, b = 0.0, a = 1, modelfactor = 0.1, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, -- this has a _g but not using for testing atm -- seems to be using x offsets from piece origin but not y or z ??? @@ -3052,7 +2152,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0.3, b = 0.0, a = 1, modelfactor = 0.1, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, l2 = { lightType = 'point', @@ -3061,7 +2161,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0.3, b = 0.0, a = 1, modelfactor = 0.1, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, l3 = { lightType = 'point', @@ -3070,7 +2170,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0.3, b = 0.0, a = 1, modelfactor = 0.1, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, @@ -3081,7 +2181,7 @@ local unitLights = { color2r = 1, color2g = 0.8, color2b = 0, color2a = 30, colortime = 0, r = 1, g = 0.3, b = 0.0, a = 0.8, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, @@ -3094,8 +2194,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 21, dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -3103,26 +2203,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 21, dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = -2, posy = 3, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 2, posy = 3, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, -- buildlight = { -- this is the lightname -- lightType = 'cone', @@ -3131,7 +2213,7 @@ local unitLights = { -- dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- buildlightB = { -- this is the lightname -- lightType = 'cone', @@ -3140,7 +2222,7 @@ local unitLights = { -- dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- buildlight2 = { -- this is the lightname -- lightType = 'cone', @@ -3149,7 +2231,7 @@ local unitLights = { -- dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- buildlight2B = { -- this is the lightname -- lightType = 'cone', @@ -3158,54 +2240,44 @@ local unitLights = { -- dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, nanolight1 = { lightType = 'point', pieceName = 'lnano', - lightConfig = { posx = -2, posy = 0, posz = 1, radius = 17, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 17, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.6, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'rnano', - lightConfig = { posx = 2, posy = 0, posz = 1, radius = 17, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 17, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.6, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hinge1 = { lightType = 'point', pieceName = 'lbeamhinge', - lightConfig = { posx = 4.3, posy = 1, posz = -1, radius = 8, - color2r = 0.3, color2g = 0.22, color2b = 0.04, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.8, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4.5, posy = 0, posz = 0, radius = 14, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 1, a = 0.11, + modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, hinge2 = { lightType = 'point', pieceName = 'rbeamhinge', - lightConfig = { posx = -7, posy = 1, posz = 0, radius = 6, - color2r = 0.6, color2g = 0.5, color2b = 0.2, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 0, posz = 0, radius = 14, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 1, a = 0.11, + modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- nanolight1bright = { - -- lightType = 'point', - -- pieceName = 'lbeamcase', - -- lightConfig = { posx = 1, posy = 8, posz = 0, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 1, b = 1, a = 0.6, - -- modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, ['legack'] = { buildlight1 = { -- this is the lightname @@ -3215,7 +2287,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -3224,7 +2296,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, canisters = { lightType = 'point', @@ -3233,7 +2305,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -3242,7 +2314,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.15, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legamphtank'] = { @@ -3253,7 +2325,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cannisterlight = { lightType = 'point', @@ -3262,7 +2334,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legeconv'] = { @@ -3273,7 +2345,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.9, g = 0.9, b = 0.45, a = 0.2, modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, enabled2 = { lightType = 'point', @@ -3282,7 +2354,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.9, g = 0.9, b = 0.45, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, enabled3 = { lightType = 'point', @@ -3291,7 +2363,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.9, g = 0.9, b = 0.45, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legscout'] = { @@ -3302,7 +2374,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['leggat'] = { @@ -3313,7 +2385,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, gatbodylightb = { lightType = 'point', @@ -3322,45 +2394,27 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armack'] = { buildlight1 = { -- this is the lightname lightType = 'cone', - pieceName = 'cagelight1emit', + pieceName = 'beacon1', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 21, dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', - pieceName = 'cagelight2emit', + pieceName = 'beacon2', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 21, dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -3369,7 +2423,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -3378,7 +2432,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.12, modelfactor = 0.22, specular = 0.4, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -3387,7 +2441,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.12, modelfactor = 0.22, specular = 0.4, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', @@ -3396,7 +2450,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, r = 1, g = 1, b = 1, a = 0.12, modelfactor = 0.25, specular = 0.4, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -3405,7 +2459,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, r = 1, g = 1, b = 1, a = 0.12, modelfactor = 0.25, specular = 0.4, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfark'] = { @@ -3416,7 +2470,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 30, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.25, specular = 0.35, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, armbuildlight2 = { lightType = 'point', @@ -3425,7 +2479,7 @@ local unitLights = { color2r = 1.2, color2g = 0.89, color2b = 0.1, colortime = 30, r = 0, g = 0, b = 0, a = 1, modelfactor = 0.25, specular = 0.35, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', @@ -3434,7 +2488,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -3443,7 +2497,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -3452,137 +2506,92 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, r = 1, g = 1, b = 1, a = 0.12, modelfactor = 0.25, specular = 0.4, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfido'] = { - -- eyesglow = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 2.0, posz = 28.4, radius = 8.8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.3, - -- modelfactor = 0.25, specular = 0.4, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, eyes1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 1.7, posz = 26.4, radius = 1.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 1, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2.2, posz = 27, radius = 7, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.25, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 3.7, posy = 0.6, posz = 26.8, radius = 1.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 1, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.7, posy = 1, posz = 27.5, radius = 7, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.25, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -3.7, posy = 0.6, posz = 26.8, radius = 1.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 1, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightr = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = -3.6, posy = -1.1, posz = 27.0, radius = 0.8, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 1.2, - modelfactor = 0.5, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3.7, posy = 1, posz = 27.5, radius = 7, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.25, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlightl = { + sidered = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 3.2, posy = -1.1, posz = 27.0, radius = 0.8, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 1.2, - modelfactor = 0.5, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 0, posz = 15, radius = 70, - dirx = 0, diry = -0.08, dirz = 1, theta = 0.7, - r = 1, g = 1, b = 0.89, a = 0.36, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 3.5, posz = 5, radius = 6, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.25, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - sidered = { + sideyellow = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 5, posy = 3.5, posz = 5, radius = 2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.8, + lightConfig = { posx = -4.5, posy = -1, posz = 6, radius = 9, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.25, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - sideyellow = { + sidetopyellow = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -4.5, posy = -1, posz = 6, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.5, + lightConfig = { posx = 1.5, posy = 5.5, posz = 3.8, radius = 9, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.25, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- sidetopyellow = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 1.5, posy = 5.5, posz = 3.8, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.1, g = 1, b = 0.2, a = 0.5, - -- modelfactor = 0.25, specular = 0.4, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, turret1 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = -4.5, posy = 1.6, posz = -4.8, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 1, b = 0.33, a = 0.9, - modelfactor = 0.15, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 0.7, posz = -4.8, radius = 6.5, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.05, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, turret2 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = 4.5, posy = 1.6, posz = -4.8, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 1, b = 0.33, a = 0.9, - modelfactor = 0.15, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4.5, posy = 0.7, posz = -4.8, radius = 6.5, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.05, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armham'] = { body = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 6, posz = 2, radius = 10, - color2r = 0.4, color2g = 0.3, color2b = 0.05, colortime = -1.5, - r = 1.2, g = 1, b = 0.33, a = 1.2, - modelfactor = 0.5, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = -5, posz = 5, radius = 8, - color2r = 0.8, color2g = 0.9, color2b = 1, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 0.6, - modelfactor = 0.3, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 22, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.13, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armshltx'] = { @@ -3590,46 +2599,46 @@ local unitLights = { lightType = 'point', pieceName = 'nano1', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'nano3', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'nano4', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight5 = { lightType = 'point', pieceName = 'nano5', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blink1a = { lightType = 'point', @@ -3638,7 +2647,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blink1b = { lightType = 'point', @@ -3647,7 +2656,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blink1c = { lightType = 'point', @@ -3656,7 +2665,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blink2a = { lightType = 'point', @@ -3665,7 +2674,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blink2b = { lightType = 'point', @@ -3674,7 +2683,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blink2c = { lightType = 'point', @@ -3683,438 +2692,299 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 38.5, posz = -4, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamleft = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 45, posy = 21.5, posz = -6.6, radius = 3.5, - pos2x = 62, pos2y = 10.5, pos2z = -6.6, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamright = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -45, posy = 21.5, posz = -6.6, radius = 3.5, - pos2x = -62, pos2y = 10.5, pos2z = -6.6, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armasy'] = { - buildlight1 = { -- this is the lightname - lightType = 'point', - pieceName = 'beam1', - lightConfig = { posx = -8.2, posy = 0, posz = 3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 4, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight1B = { -- this is the lightname - lightType = 'point', - pieceName = 'beam1', - lightConfig = { posx = -8.2, posy = 0, posz = -3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2 = { -- this is the lightname - lightType = 'point', - pieceName = 'beam2', - lightConfig = { posx = 8.2, posy = 0, posz = 3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2B = { -- this is the lightname - lightType = 'point', - pieceName = 'beam2', - lightConfig = { posx = 8.2, posy = 0, posz = -3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight3 = { -- this is the lightname - lightType = 'point', - pieceName = 'beam3', - lightConfig = { posx = 8.2, posy = 0, posz = -3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight3B = { -- this is the lightname - lightType = 'point', - pieceName = 'beam3', - lightConfig = { posx = 8.2, posy = 0, posz = 3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight4 = { -- this is the lightname - lightType = 'point', - pieceName = 'beam4', - lightConfig = { posx = -8.2, posy = 0, posz = -3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight4B = { -- this is the lightname - lightType = 'point', - pieceName = 'beam4', - lightConfig = { posx = -8.2, posy = 0, posz = 3.7, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, nanolight1 = { lightType = 'point', pieceName = 'beam1', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'beam2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'beam3', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'beam4', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, inner1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -53, posy = -1, posz = 53, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -53, posy = -4, posz = 53, radius = 55, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 53, posy = -1, posz = 53, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 53, posy = -4, posz = 53, radius = 55, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -53, posy = -1, posz = -53, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -53, posy = -4, posz = -53, radius = 55, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 53, posy = -1, posz = -53, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 53, posy = -4, posz = -53, radius = 55, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, end1 = { lightType = 'point', pieceName = 'end1', - lightConfig = { posx = -1, posy = 7.5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1, posy = 7.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, end2 = { lightType = 'point', pieceName = 'end2', - lightConfig = { posx = 1, posy = 7.5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 1, posy = 7.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, end3 = { lightType = 'point', pieceName = 'end3', - lightConfig = { posx = 1, posy = 7.5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 1, posy = 7.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, end4 = { lightType = 'point', pieceName = 'end4', - lightConfig = { posx = -1, posy = 7.5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1, posy = 7.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'mid1', - lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'mid2', - lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', pieceName = 'mid3', - lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', pieceName = 'mid4', - lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6.5, posz = 0, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coraap'] = { - buildlight1A = { + buildlight = { lightType = 'cone', pieceName = 'cagelight_emit1', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildlight1B = { - lightType = 'cone', - pieceName = 'cagelight_emit1', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, - dirx = -1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2A = { + buildlight2 = { lightType = 'cone', pieceName = 'cagelight_emit2', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2B = { - lightType = 'cone', - pieceName = 'cagelight_emit2', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, - dirx = 1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 3.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 3.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob1 = { lightType = 'point', pieceName = 'blink1', - lightConfig = { posx = 0, posy = 0, posz = -1, radius = 15, - color2r = -2, color2g = -2, color2b = -2, colortime = 50, - r = 0, g = 1, b = 0, a = 0.9, - modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 50, + r = 0, g = 1, b = 0, a = 0.5, + modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob2 = { lightType = 'point', pieceName = 'blink2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = -2, color2g = -2, color2b = -2, colortime = 50, - r = 0, g = 1, b = 0, a = 0.9, - modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 50, + r = 0, g = 1, b = 0, a = 0.5, + modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'nano3', - lightConfig = { posx = 1, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'nano4', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight5 = { lightType = 'point', pieceName = 'nano5', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight6 = { lightType = 'point', pieceName = 'nano6', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight7 = { lightType = 'point', pieceName = 'nano7', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight8 = { lightType = 'point', pieceName = 'nano8', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 53, posy = 25, posz = -7.5, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 40, posy = 19, posz = -7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 53, posy = 25, posz = 7.5, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 40, posy = 19, posz = 7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -53, posy = 25, posz = -7.5, radius = 20, - olor2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -40, posy = 19, posz = -7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -53, posy = 25, posz = 7.5, radius = 20, - olor2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -40, posy = 19, posz = 7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coramsub'] = { @@ -4122,100 +2992,73 @@ local unitLights = { lightType = 'point', pieceName = 'nano1', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 13, posz = -25, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflashleft = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 22, posy = 13, posz = -25, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflashright = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -22, posy = 13, posz = -25, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -35.5, posy = 19.5, posz = 3, radius = 16, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -39.5, posy = 19.5, posz = 3, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -35.5, posy = 19.5, posz = -11, radius = 16, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -39.5, posy = 19.5, posz = -11, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -35.5, posy = 19.5, posz = -25, radius = 16, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -39.5, posy = 19.5, posz = -25, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 35.5, posy = 19.5, posz = 3, radius = 16, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 39.5, posy = 19.5, posz = 3, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 35.5, posy = 19.5, posz = -11, radius = 16, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 39.5, posy = 19.5, posz = -11, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 35.5, posy = 19.5, posz = -25, radius = 16, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 39.5, posy = 19.5, posz = -25, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legamsub'] = { @@ -4226,7 +3069,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -4235,7 +3078,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', @@ -4244,7 +3087,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', @@ -4253,7 +3096,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel3 = { lightType = 'point', @@ -4262,7 +3105,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel4 = { lightType = 'point', @@ -4271,7 +3114,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel5 = { lightType = 'point', @@ -4280,7 +3123,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel6 = { lightType = 'point', @@ -4289,36 +3132,18 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coralab'] = { - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 3, posy = 2, posz = 0, radius = 7, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = -3, posy = 2, posz = 0, radius = 7, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, buildlight = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlightB = { -- this is the lightname lightType = 'cone', @@ -4326,8 +3151,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -4335,8 +3160,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2B = { -- this is the lightname lightType = 'cone', @@ -4344,119 +3169,83 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 15, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 15, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'nano3', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 15, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'nano4', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 15, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 49, posy = 28, posz = 41.5, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.6, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 49, posy = 28, posz = 41.5, radius = 24, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -49, posy = 28, posz = 41.5, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.6, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -49, posy = 28, posz = 41.5, radius = 24, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 49, posy = 28, posz = -29, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.6, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 49, posy = 28, posz = -29, radius = 24, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -49, posy = 28, posz = -29, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.6, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -49, posy = 28, posz = -29, radius = 24, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corasy'] = { - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.45, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.45, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash3 = { - lightType = 'point', - pieceName = 'cagelight3', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.45, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash4 = { - lightType = 'point', - pieceName = 'cagelight4', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.45, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, buildlight = { lightType = 'cone', pieceName = 'cagelight_emit1', @@ -4464,7 +3253,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -4473,7 +3262,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight3 = { lightType = 'cone', @@ -4482,7 +3271,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight4 = { lightType = 'cone', @@ -4491,7 +3280,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', @@ -4500,7 +3289,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -4509,7 +3298,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', @@ -4518,7 +3307,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', @@ -4527,7 +3316,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight5 = { lightType = 'point', @@ -4536,7 +3325,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight6 = { lightType = 'point', @@ -4545,7 +3334,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight7 = { lightType = 'point', @@ -4554,7 +3343,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight8 = { lightType = 'point', @@ -4563,7 +3352,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corgant'] = { @@ -4574,7 +3363,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -4583,7 +3372,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight3 = { -- this is the lightname lightType = 'cone', @@ -4592,7 +3381,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight3B = { -- this is the lightname lightType = 'cone', @@ -4601,142 +3390,115 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash3 = { - lightType = 'point', - pieceName = 'cagelight3', - lightConfig = { posx = 0, posy = -3, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'n1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'n2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'n3', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'n4', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight5 = { lightType = 'point', pieceName = 'n5', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight6 = { lightType = 'point', pieceName = 'n6', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight7 = { lightType = 'point', pieceName = 'n7', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight8 = { lightType = 'point', pieceName = 'n8', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight9 = { lightType = 'point', pieceName = 'n9', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight10 = { lightType = 'point', pieceName = 'n10', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight11 = { lightType = 'point', pieceName = 'n11', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight12 = { lightType = 'point', pieceName = 'n12', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsy'] = { @@ -4747,7 +3509,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -4756,61 +3518,43 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'nano1', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'nano3', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'nano4', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armasp'] = { @@ -4821,7 +3565,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -4830,7 +3574,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', @@ -4839,7 +3583,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', @@ -4848,7 +3592,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', @@ -4857,7 +3601,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.33, colortime = 0, r = 1, g = 1, b = 0.33, a = 0.075, modelfactor = 0.2, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad1 = { lightType = 'point', @@ -4866,7 +3610,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad2 = { lightType = 'point', @@ -4875,7 +3619,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad3 = { lightType = 'point', @@ -4884,7 +3628,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad4 = { lightType = 'point', @@ -4893,7 +3637,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad5 = { lightType = 'point', @@ -4902,7 +3646,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad6 = { lightType = 'point', @@ -4911,7 +3655,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad7 = { lightType = 'point', @@ -4920,7 +3664,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad8 = { lightType = 'point', @@ -4929,7 +3673,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad9 = { lightType = 'point', @@ -4938,7 +3682,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad10 = { lightType = 'point', @@ -4947,7 +3691,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad11 = { lightType = 'point', @@ -4956,7 +3700,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad12 = { lightType = 'point', @@ -4965,7 +3709,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad13 = { lightType = 'point', @@ -4974,7 +3718,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad14 = { lightType = 'point', @@ -4983,7 +3727,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad15 = { lightType = 'point', @@ -4992,7 +3736,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, pad16 = { lightType = 'point', @@ -5001,7 +3745,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armason'] = { @@ -5012,7 +3756,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -5021,7 +3765,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -5030,7 +3774,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -5039,7 +3783,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corasp'] = { @@ -5050,331 +3794,151 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - - -- landinglight_1_1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -11, posy = 51, posz = -34, radius = 3.2, - -- dirx = 0, diry = 0, dirz = 1, theta = -10, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 0.1, b = 0.1, a = 2.5, - -- modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- landinglight_1_2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -57, posy = 51, posz = -34, radius = 3.2, - -- dirx = 0, diry = 0, dirz = -1, theta = -10, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 0.1, b = 0.1, a = 2.5, - -- modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- landinglight_1_3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -34, posy = 51, posz = -57, radius = 3.2, - -- dirx = 1, diry = 0, dirz = 0, theta = -10, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 0.1, b = 0.1, a = 2.5, - -- modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- landinglight_1_4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -34, posy = 51, posz = -11, radius = 3.2, - -- dirx = -1, diry = 0, dirz = 0, theta = -10, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 0.1, b = 0.1, a = 2.5, - -- modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armsub'] = { - headlighttorpedo = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 8.2, posz = 5, radius = 80, colortime = -2, - dirx = 0, diry = -0.3, dirz = 1, theta = 0.18, - r = 0.69, g = 0.75, b = 0.9, a = 0.20, - modelfactor = -0.5, specular = -0.3, scattering = 10, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.6, posy = 13.5, posz = 7.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.6, posy = 13.5, posz = 8.2, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.6, posy = 13.5, posz = 7.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2.6, posy = 13.5, posz = 8.2, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6, posz = 14, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.4, posy = 8.0, posz = 11.0, radius = 1.3, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.6, posy = 8.0, posz = 11.0, radius = 1.3, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6, posz = 14, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armroy'] = { - sidelightl = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 15, posy = 5.8, posz = -8.0, radius = 2.5, - pos2x = 15, pos2y = 5.8, pos2z = 0.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelightr = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -15, posy = 5.8, posz = -8.0, radius = 2.5, - pos2x = -15, pos2y = 5.8, pos2z = 0.2, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = -1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, front1 = { - lightType = 'point', - pieceName = 'depthturret', - lightConfig = { posx = -10, posy = 2, posz = 9.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front2 = { - lightType = 'point', - pieceName = 'depthturret', - lightConfig = { posx = 10, posy = 2, posz = 9.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash1 = { - lightType = 'point', - pieceName = 'depthturret', - lightConfig = { posx = 0, posy = 2.4, posz = -11.3, radius = 1.7, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashside1 = { - lightType = 'beam', - pieceName = 'depthturret', - lightConfig = { posx = -8.7, posy = 4.4, posz = -2.1, radius = 0.9, - pos2x = -8.7, pos2y = 4.4, pos2z = -4.9, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 2, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashside2 = { - lightType = 'beam', - pieceName = 'depthturret', - lightConfig = { posx = 8.7, posy = 4.4, posz = -2.1, radius = 0.9, - pos2x = 8.7, pos2y = 4.4, pos2z = -4.9, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 2, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5, posy = 18, posz = -3.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10, posy = 14, posz = 29.5, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - mid2 = { + front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 18, posz = -3.5, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10, posy = 14, posz = 29.5, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - mid3 = { + mid = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5, posy = 18, posz = -3.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 18, posz = -3.5, radius = 24, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4, posy = 10, posz = -33.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 10, posz = -33.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4, posy = 10, posz = -33.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 10, posz = -33.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcs'] = { - buildlight1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 3, posy = 0, posz = 0, radius = 19, - dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight1spot = { + nanolight1 = { lightType = 'point', - pieceName = 'cagelight_emit', - lightConfig = { posx = 4.5, posy = -1.0, posz = 1, radius = 2, + pieceName = 'nano', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 1.3, g = 1, b = 0.2, a = 1.1, - modelfactor = 0.5, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = -3, posy = 0, posz = 0, radius = 19, - dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2spot = { - lightType = 'point', - pieceName = 'cagelight_emit', - lightConfig = { posx = -4.5, posy = -1.0, posz = 1, radius = 2, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 1.3, g = 1, b = 0.2, a = 1.1, - modelfactor = 0.5, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanolight1 = { - lightType = 'point', - pieceName = 'nano', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.3, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, tower = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 18, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 17, posz = 0, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 28.2, posz = 0, radius = 4, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 28.5, posz = 0, radius = 9, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 1, g = 1, b = 1, a = 0.12, + modelfactor = 0.25, specular = 0.1, scattering = 0.8, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8, posy = 15, posz = 6.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8, posy = 15, posz = 6.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8, posy = 15, posz = 6.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8, posy = 15, posz = 6.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8, posy = 15, posz = -6.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, + lightConfig = { posx = -8, posy = 15, posz = -6.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, top4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8, posy = 15, posz = -6.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8, posy = 15, posz = -6.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corpt'] = { - searchlightaa = { - lightType = 'cone', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 200, colortime = -1.5, - dirx = 0, diry = 0, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, eyes = { lightType = 'point', pieceName = 'head', @@ -5382,25 +3946,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenblob1 = { - lightType = 'point', - pieceName = 'radar', - lightConfig = { posx = -8.5, posy = 0, posz = 2, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.33, - modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenblob2 = { - lightType = 'point', - pieceName = 'radar', - lightConfig = { posx = 8.5, posy = 0, posz = 2, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.33, - modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcs'] = { @@ -5411,7 +3957,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -5420,7 +3966,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -5429,7 +3975,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', @@ -5438,7 +3984,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcsa'] = { @@ -5449,97 +3995,61 @@ local unitLights = { color2r = 0.3, color2g = 0.2, color2b = 0.025, colortime = 18, r = 1.2, g = 0.85, b = 0.1, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'emit', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.44, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -20.5, posy = 6.5, posz = -4.8, radius = 1.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 1.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -20.5, posy = 6.5, posz = -2.1, radius = 1.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 1.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 20.5, posy = 6.5, posz = -4.8, radius = 1.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 1.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - fronttop4 = { + backpack = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 20.5, posy = 6.5, posz = -2.1, radius = 1.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 1.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3.5, posz = -12.6, radius = 18, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.09, + modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- backpack = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 3.5, posz = 12.6, radius = 18, - -- color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.09, - -- modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, thrustera = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5, posy = 7.3, posz = -14.5, radius = 8, - color2r = 0.2, color2g = 0.7, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.7, a = 0.6, + lightConfig = { posx = -5, posy = 7.3, posz = -14.5, radius = 9, + color2r = 0.8, color2g = 0.1, color2b = 0.1, colortime = 6, + r = 1, g = 0.2, b = 0.2, a = 0.12, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusterb = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5, posy = 7.3, posz = -14.5, radius = 8, - color2r = 0.2, color2g = 0.7, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.7, a = 0.6, + lightConfig = { posx = 5, posy = 7.3, posz = -14.5, radius = 9, + color2r = 0.8, color2g = 0.1, color2b = 0.1, colortime = 6, + r = 1, g = 0.2, b = 0.2, a = 0.12, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', - lightConfig = { posx = 0, posy = 0, posz = -6, radius = 15, + lightConfig = { posx = 0, posy = 0, posz = -6, radius = 18, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0.6, g = 1, b = 0.6, a = 0.75, + r = 0.6, g = 1, b = 0.6, a = 0.25, modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 0, posz = -6, radius = 15, + lightConfig = { posx = 0, posy = 0, posz = -6, radius = 18, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0.6, g = 1, b = 0.6, a = 0.75, + r = 0.6, g = 1, b = 0.6, a = 0.25, modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcsa'] = { @@ -5550,7 +4060,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', @@ -5559,7 +4069,7 @@ local unitLights = { color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 5, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -5568,7 +4078,7 @@ local unitLights = { color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 6, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'point', @@ -5577,7 +4087,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.6, g = 1, b = 0.6, a = 0.25, modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'point', @@ -5586,7 +4096,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.6, g = 1, b = 0.6, a = 0.25, modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -5595,7 +4105,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armdronecarry'] = { @@ -5606,7 +4116,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, towerfront = { lightType = 'point', @@ -5615,7 +4125,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', @@ -5624,7 +4134,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.4, specular = 0.4, scattering = 1, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armtrident'] = { @@ -5635,7 +4145,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, towerfront = { lightType = 'point', @@ -5644,7 +4154,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armdronecarryland'] = { @@ -5655,7 +4165,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, towerfront = { lightType = 'point', @@ -5664,7 +4174,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', @@ -5673,7 +4183,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.4, specular = 0.4, scattering = 1, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcarry'] = { @@ -5684,7 +4194,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.33, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -5693,7 +4203,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', @@ -5702,7 +4212,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, unstocked = { lightType = 'point', @@ -5712,7 +4222,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = 2, g = 0.8, b = 0, a = 0.8, modelfactor = 0.1, specular = 0.3, scattering = 0.55, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, stocked = { @@ -5723,7 +4233,7 @@ local unitLights = { color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, r = 2, g = 0.8, b = 0, a = 0.9, modelfactor = -0.1, specular = 0.1, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, tower = { @@ -5733,7 +4243,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', @@ -5742,7 +4252,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', @@ -5751,7 +4261,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, door1_1 = { lightType = 'point', @@ -5760,7 +4270,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, door1_2 = { lightType = 'point', @@ -5769,7 +4279,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, door2_1 = { lightType = 'point', @@ -5778,7 +4288,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, door2_2 = { lightType = 'point', @@ -5787,7 +4297,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', @@ -5796,7 +4306,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -5805,7 +4315,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front3 = { lightType = 'point', @@ -5814,7 +4324,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front4 = { lightType = 'point', @@ -5823,7 +4333,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -5832,7 +4342,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -5841,7 +4351,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back3 = { lightType = 'point', @@ -5850,7 +4360,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back4 = { lightType = 'point', @@ -5859,7 +4369,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armantiship'] = { @@ -5870,101 +4380,101 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.55, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, unstocked = { lightType = 'point', pieceName = 'unstocked', alliedOnly = true, - lightConfig = { posx = 0, posy = 20, posz = 0, radius = 14, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = 2, g = 0.8, b = 0, a = 0.8, modelfactor = 0.1, specular = 0.3, scattering = 0.55, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, stocked = { lightType = 'point', pieceName = 'stocked', alliedOnly = true, - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 11, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 26, color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, r = 2, g = 0.8, b = 0, a = 0.9, modelfactor = -0.1, specular = 0.1, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 16, posz = 66, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 16, posz = 64, radius = 35, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = -50.5, radius = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7, posz = -50.5, radius = 37, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = -33, radius = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7, posz = -33, radius = 37, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, whitemid = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 12.5, posz = 19, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13.5, posz = 19, radius = 20, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, door1_1 = { lightType = 'point', pieceName = 'door1', - lightConfig = { posx = 8, posy = 0, posz = 11, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8, posy = 0, posz = 11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, door1_2 = { lightType = 'point', pieceName = 'door1', - lightConfig = { posx = 8, posy = 5, posz = -11, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8, posy = 5, posz = -11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, door2_1 = { lightType = 'point', pieceName = 'door2', - lightConfig = { posx = -8, posy = 0, posz = 11, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8, posy = 0, posz = 11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, door2_2 = { lightType = 'point', pieceName = 'door2', - lightConfig = { posx = -8, posy = 5, posz = -11, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8, posy = 5, posz = -11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cordrone'] = { @@ -5975,7 +4485,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['cordronecarry'] = { @@ -5986,7 +4496,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', @@ -5995,7 +4505,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.4, specular = 0.4, scattering = 1, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsentinel'] = { @@ -6006,7 +4516,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', @@ -6015,7 +4525,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.4, specular = 0.4, scattering = 1, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cordronecarryair'] = { @@ -6026,7 +4536,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', @@ -6035,7 +4545,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.4, specular = 0.4, scattering = 1, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcarry'] = { @@ -6046,7 +4556,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.33, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -6055,7 +4565,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -6064,7 +4574,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -6073,7 +4583,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', @@ -6082,7 +4592,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes4 = { lightType = 'point', @@ -6091,456 +4601,204 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corantiship'] = { - eyesfronttop = { - lightType = 'beam', + eyestop = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 24, posz = 67, radius = 20, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eyesside1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 12, posy = 13.5, posz = 67, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eyesside2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 20.4, posz = 60, radius = 5.0, - pos2x = 0, pos2y = 18, pos2z = 78, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = 13.5, posz = 67, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyesfront = { - lightType = 'beam', + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4.8, posy = 12.5, posz = 77, radius = 3.0, - pos2x = 4.8, pos2y = 12.5, pos2z = 77, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13.5, posz = 80, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenblob1 = { + back = { lightType = 'point', - pieceName = 'radar', - lightConfig = { posx = 0, posy = 20, posz = -1, radius = 15, - color2r = -2, color2g = -2, color2b = -2, colortime = 50, - r = 0, g = 1, b = 0, a = 0.9, - modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 0, posy = 24, posz = -39, radius = 40, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyestop = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 24, posz = 67, radius = 20, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - orangelight1 = { + }, + ['corfship'] = { + flamelight = { lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = -17.0, posy = 19.0, posz = -38.8, radius = 2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'sleeve', + lightConfig = { posx = 0, posy = 0, posz = 19, radius = 16, + color2r = 0.89999998, color2g = 0.5, color2b = 0.05, colortime = 5, + r = 0.95, g = 0.66, b = 0.07, a = 0.08, + modelfactor = 0.4, specular = 0.8, scattering = 1.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - orangelight12 = { + eyes1 = { lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 17.0, posy = 19.0, posz = -38.8, radius = 2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - + pieceName = 'turret', + lightConfig = { posx = 3, posy = 6.3, posz = 8, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenlight1 = { + eyes2 = { lightType = 'point', - pieceName = 'greendbr', - alliedOnly = true, - lightConfig = { posx = -12, posy = 28.5, posz = -18, radius = 12, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - + pieceName = 'turret', + lightConfig = { posx = -3, posy = 6.3, posz = 8, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenlight2 = { + turret_right1 = { lightType = 'point', - pieceName = 'greendbr', - alliedOnly = true, - lightConfig = { posx = -12, posy = 28.5, posz = 6, radius = 12, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, + pieceName = 'turret', + lightConfig = { posx = 8, posy = 4, posz = 0, radius = 23, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.065, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenlight3 = { + turret_right2 = { lightType = 'point', - pieceName = 'greendbl', - alliedOnly = true, - lightConfig = { posx = 12, posy = 28.5, posz = -18, radius = 12, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, + pieceName = 'base', + lightConfig = { posx = 14, posy = -1, posz = 2, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.065, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenlight4 = { + turret_left1 = { lightType = 'point', - pieceName = 'greendbl', - alliedOnly = true, - lightConfig = { posx = 12, posy = 28.5, posz = 6, radius = 12, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, + pieceName = 'turret', + lightConfig = { posx = -8, posy = 4, posz = 0, radius = 23, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.065, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyesside1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 12, posy = 13.5, posz = 67, radius = 17, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyesside2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -12, posy = 13.5, posz = 67, radius = 17, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyesfront = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 13.5, posz = 80, radius = 13, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - backr = { + turret_left2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -14, posy = -1, posz = 2, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.065, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + back_right1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4, posy = 26, posz = -53, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 4, posz = -27, radius = 11, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - backl = { + back_right2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4, posy = 26, posz = -53, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 4, posz = -33.5, radius = 11, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - midr = { + back_left1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -9, posy = 26, posz = -28, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 4, posz = -27, radius = 11, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - midl = { + back_left2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 9, posy = 26, posz = -28, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 4, posz = -33.5, radius = 11, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, - ['corfship'] = { - flamelight = { + ['coracsub'] = { + nanolight1 = { lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 2, posz = 19, radius = 14, - color2r = 0.89999998, color2g = 0.5, color2b = 0.05, colortime = 5, - r = 0.95, g = 0.66, b = 0.07, a = 0.5, - modelfactor = 0.4, specular = 0.8, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 6}, + pieceName = 'flare', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - flamebright = { + eyes1 = { lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 0, posz = 19, radius = 4, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 7, - r = 0.95, g = 0.66, b = 0.07, a = 1.9, - modelfactor = 0.4, specular = 0.9, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 0, posy = 14.4, posz = 14.5, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyeshighfront = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -2.8, posy = 5.5, posz = 6.2, radius = 1.0, - pos2x = 2.8, pos2y = 5.5, pos2z = 6.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 3, posy = 6.3, posz = 8, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = -3, posy = 6.3, posz = 8, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - turretnrgrighttop = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 9, posy = 8, posz = 6, radius = 7, - pos2x = 9, pos2y = 8, pos2z = -1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretnrgleftttop = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -9, posy = 8, posz = 6, radius = 7, - pos2x = -9, pos2y = 8, pos2z = -1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretnrgrightbot = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 14, posy = 3, posz = 4, radius = 7, - pos2x = 14, pos2y = 3, pos2z = -5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7, posy = 14.4, posz = 11, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - turretnrglefttbot = { - lightType = 'beam', + eyes3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -14, posy = 3, posz = 4, radius = 7, - pos2x = -14, pos2y = 3, pos2z = -5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7, posy = 14.4, posz = 11, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- turret_right1 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 8, posy = 4, posz = 0, radius = 5, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.33, a = 0.065, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- turret_right2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 14, posy = -1, posz = 2, radius = 5, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.33, a = 0.065, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- turret_left1 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = -8, posy = 4, posz = 0, radius = 5, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.33, a = 0.065, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- turret_left2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -14, posy = -1, posz = 2, radius = 5, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.33, a = 0.065, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - backleftnrg = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 6.5, posy = 4, posz = -23, radius = 4, - pos2x = 6.2, pos2y = 4, pos2z = -30, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backrightnrg = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -6.5, posy = 4, posz = -23, radius = 4, - pos2x = -6.2, pos2y = 4, pos2z = -30, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- back_right1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 4, posz = -27, radius = 3, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.05, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- back_right2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 4, posz = -33.5, radius = 3, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.05, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- back_left1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 4, posz = -27, radius = 3, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.05, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- back_left2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 4, posz = -33.5, radius = 3, - -- color2r = 1, color2g = 1, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.05, - -- modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - aalightright = { - lightType = 'point', - pieceName = 'mturret', - lightConfig = { posx = -3.5, posy = 7.0, posz = -0.7, radius = 2, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightleft = { - lightType = 'point', - pieceName = 'mturret', - lightConfig = { posx = 3.5, posy = 7.0, posz = -0.7, radius = 2, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['coracsub'] = { - nanolight1 = { - lightType = 'point', - pieceName = 'flare', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.6, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -4.2, posy = 15.0, posz = 12.6, radius = 2.5, - pos2x = 4.2, pos2y = 15.0, pos2z = 12.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 3.3, posy = 14, posz = 17.2, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -3.3, posy = 14, posz = 17.2, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 14.4, posz = 14.5, radius = 17, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -7, posy = 14.4, posz = 11, radius = 13, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 7, posy = 14.4, posz = 11, radius = 13, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armacsub'] = { - buildflash = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = 32, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, nanolight1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -6549,34 +4807,34 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + front = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 10, posz = 33, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- front = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 10, posz = 33, radius = 7, - -- color2r = -2, color2g = -2, color2b = -2, colortime = -1, - -- r = 1.3, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, frontside1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5, posy = 15, posz = 30, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 15, posz = 26, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, frontside2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5, posy = 15, posz = 30, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 15, posz = 26, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormls'] = { @@ -6587,84 +4845,37 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -2.6, posy = 9.3, posz = 15.2, radius = 1.2, - pos2x = 2.6, pos2y = 9.3, pos2z = 15.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash1 = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5.5, posy = 12.6, posz = -16.5, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 9.5, posz = 16, radius = 15, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash2 = { + }, + ['corshark'] = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5.5, posy = 12.6, posz = -16.5, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = 5, posz = 31, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 9.5, posz = 16, radius = 15, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.075, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['corshark'] = { - eyesfront = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4.2, posy = 4.9, posz = 30, radius = 3, - pos2x = 4.2, pos2y = 4.9, pos2z = 30, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = 5, posz = 31, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlighttorpedo = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 4.2, posz = 18, radius = 70, colortime = -2, - dirx = 0, diry = -0.3, dirz = 1, theta = 0.58, - r = 0.69, g = 0.75, b = 0.9, a = 0.20, - modelfactor = -0.5, specular = -0.3, scattering = 10, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6, posy = 5, posz = 31, radius = 19, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6, posy = 5, posz = 31, radius = 19, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['cordesolator'] = { nukelight = { @@ -6675,7 +4886,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.07, r = 1, g = 0.2, b = 0.2, a = 0.45, modelfactor = 0.5, specular = 1, scattering = 6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nukelight2 = { lightType = 'cone', @@ -6685,7 +4896,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.07, r = 1, g = 0.2, b = 0.2, a = 0.45, modelfactor = 0.5, specular = 1, scattering = 6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { @@ -6695,7 +4906,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.115, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -6704,7 +4915,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', @@ -6713,7 +4924,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.2, modelfactor = 0.3, specular = 0, scattering = 2.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coronager'] = { @@ -6724,7 +4935,7 @@ local unitLights = { color2r = 1, color2g = 0.9, color2b = 0.2, colortime = 0, r = 0.6, g = 0.5, b = 0.1, a = 0.165, modelfactor = 0.3, specular = 0, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -6733,274 +4944,91 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.3, specular = 0, scattering = 3.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corblackhy'] = { - eyesfront = { - lightType = 'beam', - pieceName = 'tur1', - lightConfig = { posx = -7.8, posy = 31, posz = 15, radius = 2, - pos2x = 7.8, pos2y = 31, pos2z = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + eyes1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 67, posz = -34, radius = 24, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesright = { - lightType = 'beam', - pieceName = 'tur1', - lightConfig = { posx = -8.5, posy = 31, posz = 15, radius = 2, - pos2x = -12, pos2y = 31, pos2z = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + eyes2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -14, posy = 67, posz = -37, radius = 20, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesleft = { - lightType = 'beam', - pieceName = 'tur1', - lightConfig = { posx = 8.5, posy = 31, posz = 15, radius = 2, - pos2x = 12, pos2y = 31, pos2z = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + eyes3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 14, posy = 67, posz = -37, radius = 20, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 67, posz = -34, radius = 24, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -14, posy = 67, posz = -37, radius = 20, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 14, posy = 67, posz = -37, radius = 20, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -18, posy = 32, posz = 69, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -18, posy = 32, posz = 69, radius = 33, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 18, posy = 32, posz = 69, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 18, posy = 32, posz = 69, radius = 33, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', - pieceName = 'tur1', - lightConfig = { posx = -11.5, posy = 37, posz = 0, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -11.5, posy = 73, posz = -50.5, radius = 15, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', - pieceName = 'tur1', - lightConfig = { posx = 11.5, posy = 37, posz = 0, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 11.5, posy = 73, posz = -50.5, radius = 15, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', - pieceName = 'tur1', - lightConfig = { posx = -6.0, posy = 37.5, posz = 6.5, radius = 5, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.2, g = 1, b = 0.33, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -6.5, posy = 73, posz = -44, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', - pieceName = 'tur1', - lightConfig = { posx = 6.0, posy = 37.5, posz = 6.5, radius = 5, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.2, g = 1, b = 0.33, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenblob = { - lightType = 'point', - pieceName = 'radar', - lightConfig = { posx = -8, posy = 12, posz = -5, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.9, - modelfactor = 0.1, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret1 = { - lightType = 'point', - pieceName = 'gun6', - lightConfig = { posx = 0, posy = 7.6, posz = -3, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret2 = { - lightType = 'point', - pieceName = 'gun5', - lightConfig = { posx = 0, posy = 7.6, posz = -3, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret3 = { - lightType = 'point', - pieceName = 'gun2', - lightConfig = { posx = 0, posy = 7.6, posz = -5, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aagunright = { - lightType = 'beam', - pieceName = 'sleeves4', - lightConfig = { posx = 0, posy = 4.1, posz = -1, radius = 2, - pos2x = 0, pos2y = 4.1, pos2z = 1, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlightaaright = { - lightType = 'cone', - pieceName = 'sleeves4', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 200, colortime = -1.5, - dirx = 0, diry = 0.3, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aagunleft = { - lightType = 'beam', - pieceName = 'sleeves3', - lightConfig = { posx = 0, posy = 4.1, posz = -1, radius = 2, - pos2x = 0, pos2y = 4.1, pos2z = 1, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlightaaleft = { - lightType = 'cone', - pieceName = 'sleeves3', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 200, colortime = -1.5, - dirx = 0, diry = 0.3, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightrightsource1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -34, posy = 22.9, posz = 5.2, radius = 7, - pos2x = -30.5, pos2y = 26.4, pos2z = 5.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightright1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -25, posy = 27, posz = 5.2, radius = 75, colortime = -2, - dirx = -1, diry = -0.3, dirz = 0, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = 0.1, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightrightsource2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -34, posy = 22.9, posz = 36.8, radius = 7, - pos2x = -30.5, pos2y = 26.4, pos2z = 36.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightright2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -25, posy = 27, posz = 36.8, radius = 75, colortime = -2, - dirx = -1, diry = -0.3, dirz = 0, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = 0.1, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightleftsource1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 34, posy = 22.9, posz = 5.2, radius = 7, - pos2x = 30.5, pos2y = 26.4, pos2z = 5.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightleft1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 25, posy = 27, posz = 5.2, radius = 75, colortime = -2, - dirx = 1, diry = -0.3, dirz = 0, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = 0.1, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightleftsource2 = { - lightType = 'beam', pieceName = 'base', - lightConfig = { posx = 34, posy = 22.9, posz = 36.8, radius = 7, - pos2x = 30.5, pos2y = 26.4, pos2z = 36.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightleft2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 25, posy = 27, posz = 36.8, radius = 75, colortime = -2, - dirx = 1, diry = -0.3, dirz = 0, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = 0.1, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 73, posz = -44, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.33, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corfblackhyt4'] = { @@ -7011,7 +5039,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -7020,7 +5048,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', @@ -7029,7 +5057,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', @@ -7038,7 +5066,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -7047,7 +5075,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -7056,7 +5084,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -7065,7 +5093,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -7074,7 +5102,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.33, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', @@ -7083,7 +5111,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.33, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', @@ -7092,7 +5120,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', @@ -7101,7 +5129,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', @@ -7110,7 +5138,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', @@ -7119,436 +5147,93 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormship'] = { - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -7.5, posy = 28.5, posz = -31, radius = 18, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 7.5, posy = 28.5, posz = -31, radius = 18, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - eyesfront = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6.2, posy = 28, posz = -33.3, radius = 2, - pos2x = 6.2, pos2y = 28, pos2z = -33.3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7.5, posy = 28.5, posz = -31, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenblob = { + eyes2 = { lightType = 'point', - pieceName = 'dish', - lightConfig = { posx = 0, posy = 5, posz = 3, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.9, - modelfactor = 0.1, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 7.5, posy = 28.5, posz = -31, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -11, posy = 42, posz = -35, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -11, posy = 42, posz = -35, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 11, posy = 42, posz = -35, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 11, posy = 42, posz = -35, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamlauncherl = { + }, + ['corbats'] = { + eyes1 = { lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = 7, posy = 0.1, posz = 16, radius = 1.8, - dirx = -1, diry = 0, dirz = 1, theta = -1.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -6, posy = 54, posz = -29, radius = 20, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamlauncherr = { + eyes2 = { lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = -7, posy = 0.1, posz = 16, radius = 1.8, - dirx = 1, diry = 0, dirz = 1, theta = -1.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aagunleft= { - lightType = 'beam', - pieceName = 'sleeve', - lightConfig = { posx = 5.1, posy = 3.5, posz = -1, radius = 2, - pos2x = 5.1, pos2y = 3.5, pos2z = -0.5, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aagunright= { - lightType = 'beam', - pieceName = 'sleeve', - lightConfig = { posx = -5.1, posy = 3.5, posz = -1, radius = 2, - pos2x = -5.1, pos2y = 3.5, pos2z = -0.5, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlightaa = { - lightType = 'cone', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 160, colortime = -1.5, - dirx = 0, diry = 0.3, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corcrus'] = { - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'sleeve', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 3.2, posz = -1, radius = 75, colortime = -2, - dirx = 0, diry = -0.1, dirz = 1, theta = 0.15, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = 0.1, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunleft1 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 12.8, posy = 5, posz = 6.5, radius = 2.5, - dirx = -1, diry = 1, dirz = 0, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunleft2 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 12.8, posy = 5, posz = 1, radius = 2.5, - dirx = -1, diry = 1, dirz = 0, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunleft3 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 12.8, posy = 5, posz = -4.5, radius = 2.5, - dirx = -1, diry = 1, dirz = 0, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunright1 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = -12.8, posy = 5, posz = 5.5, radius = 2.5, - dirx = 1, diry = 1, dirz = 0, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunright2 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = -12.8, posy = 5, posz = 1, radius = 2.5, - dirx = 1, diry = 1, dirz = 0, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunright3 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = -12.8, posy = 5, posz = -4.5, radius = 2.5, - dirx = 1, diry = 1, dirz = 0, theta = -1.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunbarrelright = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = -7.8, posy = 0.6, posz = 16.5, radius = 6.5, - color2r = 0, color2g = 0.3, color2b = 0, colortime = 35, - r = 0, g = 1.5, b = 0, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunbarrelleft = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 7.8, posy = 0.6, posz = 16.5, radius = 6.5, - color2r = 0, color2g = 0.3, color2b = 0, colortime = 35, - r = 0, g = 1.5, b = 0, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 18.9, posz = -7.2, radius = 1.7, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret1l = { - lightType = 'point', - pieceName = 'foreturret', - lightConfig = { posx = 3.2, posy = 6.7, posz = 2.5, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret1r = { - lightType = 'point', - pieceName = 'foreturret', - lightConfig = { posx = -3.2, posy = 6.7, posz = 2.5, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret2l = { - lightType = 'point', - pieceName = 'aftturret', - lightConfig = { posx = 3.2, posy = 6.7, posz = 2.5, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret2r = { - lightType = 'point', - pieceName = 'aftturret', - lightConfig = { posx = -3.2, posy = 6.7, posz = 2.5, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightdepthchargef = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -6, posy = 5.2, posz = -7, radius = 200, - color2r = 0.35, color2g = 0.37, color2b = 0.45, colortime = 120, - dirx = 0, diry = -0.7, dirz = 0.6, theta = 0.55, - r = 0.69, g = 0.75, b = 0.9, a = 0.1, - modelfactor = 0.5, specular = 0.3, scattering = 14.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- headlightdepthchargeb = { -- this is the lightname - -- lightType = 'cone', - -- pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - -- lightConfig = { posx = -6, posy = 5.2, posz = -7, radius = 100, colortime = -2, - -- dirx = 0, diry = -0.7, dirz = -0.5, theta = 0.55, - -- r = 0.69, g = 0.75, b = 0.9, a = 0.2, - -- modelfactor = 0.5, specular = 0.3, scattering = 14.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['corbats'] = { - eyesfront = { - lightType = 'beam', - pieceName = 'turretb', - lightConfig = { posx = -3.2, posy = 19, posz = 4.5, radius = 2, - pos2x = 3.2, pos2y = 19, pos2z = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 6, posy = 54, posz = -29, radius = 20, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlightsource1 = { - lightType = 'beam', - pieceName = 'turretb', - lightConfig = { posx = -17, posy = 1.2, posz = -3.5, radius = 6, - pos2x = -17, pos2y = 1.2, pos2z = -12.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mainturret1 = { - lightType = 'point', - pieceName = 'sleeveb1', - lightConfig = { posx = 1.4, posy = 0.1, posz = 6.1, radius = 1.2, - dirx = 0, diry = 0, dirz = 1, theta = -2.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 30, - r = 1, g = 0.8, b = 0.2, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mainturret2 = { - lightType = 'point', - pieceName = 'sleeveb2', - lightConfig = { posx = -0, posy = 0.1, posz = 6.1, radius = 1.2, - dirx = 0, diry = 0, dirz = 1, theta = -2.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 30, - r = 1, g = 0.8, b = 0.2, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mainturret3 = { - lightType = 'point', - pieceName = 'sleeveb3', - lightConfig = { posx = -1.4, posy = 0.1, posz = 6.1, radius = 1.2, - dirx = 0, diry = 0, dirz = 1, theta = -2.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 30, - r = 1, g = 0.8, b = 0.2, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightsource2 = { - lightType = 'beam', - pieceName = 'turretb', - lightConfig = { posx = 17, posy = 1.2, posz = -3.5, radius = 6, - pos2x = 17, pos2y = 1.2, pos2z = -12.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'turretb', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -6, posy = 1.2, posz = -7, radius = 75, colortime = -2, - dirx = -1, diry = -0.5, dirz = 0, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = 0.1, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'turretb', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 6, posy = 1.2, posz = -7, radius = 75, colortime = -2, - dirx = 1, diry = -0.5, dirz = 0, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.55, - modelfactor = 0.1, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6, posy = 54, posz = -29, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6, posy = 54, posz = -29, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, antenna1 = { lightType = 'point', - pieceName = 'turretb', - lightConfig = { posx = -0.3, posy = 35, posz = -16, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + pieceName = 'base', + lightConfig = { posx = 0, posy = 72, posz = -51, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, antenna2 = { lightType = 'point', - pieceName = 'turretb', - lightConfig = { posx = 4.8, posy = 31, posz = -16, radius = 2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -5, posy = 64, posz = -51, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna3 = { lightType = 'point', - pieceName = 'turretb', - lightConfig = { posx = -4.8, posy = 28, posz = -16, radius = 2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamturret1 = { - lightType = 'point', - pieceName = 'sleevea', - lightConfig = { posx = 0, posy = 8.7, posz = 0, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -1.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 5, posy = 69, posz = -51, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- teamturret1A = { - -- lightType = 'point', - -- pieceName = 'guna', - -- lightConfig = { posx = 0, posy = 7.6, posz = -9, radius = 1.6, - -- dirx = 0, diry = 0, dirz = 1, theta = -1.2, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = -1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- teamturret1B = { - -- lightType = 'point', - -- pieceName = 'guna', - -- lightConfig = { posx = -5.9, posy = -3.1, posz = -9, radius = 1.6, - -- dirx = 0, diry = 0, dirz = 1, theta = -1.2, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = -1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- teamturret1C = { - -- lightType = 'point', - -- pieceName = 'guna', - -- lightConfig = { posx = 5.9, posy = -3.1, posz = -9, radius = 1.6, - -- dirx = 0, diry = 0, dirz = 1, theta = -1.2, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = -1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corssub'] = { eyes1 = { @@ -7558,7 +5243,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -7567,7 +5252,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', @@ -7576,299 +5261,168 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corarch'] = { - searchlight1 = { - lightType = 'cone', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = -2, posz = 8, radius = 350, colortime = -1.5, - dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aagunfront = { - lightType = 'beam', - pieceName = 'boxa', - lightConfig = { posx = -0.7, posy = 5.3, posz = -0.8, radius = 3.2, - pos2x = 0.7, pos2y = 5.3, pos2z = -0.8, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aagunback = { - lightType = 'beam', - pieceName = 'boxb', - lightConfig = { posx = -0.7, posy = 5.3, posz = -0.8, radius = 3.2, - pos2x = 0.7, pos2y = 5.3, pos2z = -0.8, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, turret1 = { lightType = 'point', pieceName = 'boxa', - lightConfig = { posx = 0, posy = 4.5, posz = 1.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.4, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4.5, posz = 1.5, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.18, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, turret2 = { lightType = 'point', pieceName = 'boxb', - lightConfig = { posx = 0, posy = 4.5, posz = 1.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.4, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4.5, posz = 1.5, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.18, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmship'] = { - frontlight = { - lightType = 'beam', + eyes = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.7, posy = 10.2, posz = 31, radius = 2.4, - pos2x = -6.7, pos2y = 10.2, pos2z = 31.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 11, posz = 33, radius = 22, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - searchlight = { - lightType = 'cone', - pieceName = 'launcher2', - lightConfig = { posx = 0, posy = 0, posz = 7, radius = 150, - dirx = 0, diry = 0.1, dirz = 1, theta = 0.14, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile1A = { - lightType = 'beam', - pieceName = 'launcher2', - lightConfig = { posx = -4.4, posy = 4.7, posz = 5.7, radius = 1.3, - pos2x = -4.4, pos2y = 4.7, pos2z = 3.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile1B = { - lightType = 'beam', - pieceName = 'launcher2', - lightConfig = { posx = 4.4, posy = 4.7, posz = 5.7, radius = 1.3, - pos2x = 4.4, pos2y = 4.7, pos2z = 3.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11, posz = 33, radius = 22, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.5, posy = 9, posz = 6, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3.5, posy = 8, posz = 6, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.5, posy = 8, posz = 6, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.5, posy = 8, posz = 6, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.5, posy = 8, posz = -14, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3.5, posy = 8, posz = -14, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.5, posy = 8, posz = -14, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.5, posy = 8, posz = -14, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.5, posy = 8, posz = -33.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3.5, posy = 8, posz = -33.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.5, posy = 8, posz = -33.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.5, posy = 8, posz = -33.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 1, posz = -41, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.3, g = 1, b = 0.2, a = 0.85, - modelfactor = 0.4, specular = 0.25, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13.6, posy = -3, posz = 22.4, radius = 1.5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13.6, posy = -3, posz = 10.8, radius = 1.5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13.6, posy = -3, posz = 22.4, radius = 1.5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13.6, posy = -3, posz = 10.8, radius = 1.5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 1, posz = -41, radius = 19, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsjam'] = { mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 12, posz = 7.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.65, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 10, posz = 9.5, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 12, posz = -7.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.65, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - cloaklightred1 = { - lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 5, posz = -20, radius = 10, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 10, posz = -9.5, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - cloaklightred2 = { + eyes = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 4, posz = 20, radius = 10, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 0, posy = 17, posz = 4.5, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes = { --eyes need beam! - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 17, posz = 4.5, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armsubk'] = { - headlighttorpedo = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 4.2, posz = 18, radius = 70, colortime = -2, - dirx = 0, diry = -0.3, dirz = 1, theta = 0.58, - r = 0.69, g = 0.75, b = 0.9, a = 0.20, - modelfactor = -0.5, specular = -0.3, scattering = 10, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4.5, posy = 4, posz = 31, radius = 3.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 4, posz = 31, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4.5, posy = 4, posz = 31, radius = 3.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4.5, posy = 4, posz = 31, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4, posz = -11, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = -11, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 12, posz = -26, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0.25, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 12, posz = -26, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armseadragon'] = { @@ -7879,7 +5433,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 0.5, g = 0.4, b = 0.2, a = 0.22, modelfactor = 0.3, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nukelight = { lightType = 'cone', @@ -7889,7 +5443,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.07, r = 1, g = 1, b = 0.2, a = 0.45, modelfactor = 0.5, specular = 1, scattering = 6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nukelight2 = { lightType = 'cone', @@ -7899,7 +5453,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.07, r = 1, g = 1, b = 0.2, a = 0.45, modelfactor = 0.5, specular = 1, scattering = 6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, @@ -7913,7 +5467,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { @@ -7923,7 +5477,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 0.7, g = 0.6, b = 0.2, a = 0.155, modelfactor = 1.4, specular = 0.25, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -7932,7 +5486,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 0.7, g = 0.6, b = 0.2, a = 0.155, modelfactor = 1.4, specular = 0.25, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', @@ -7941,7 +5495,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.105, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, engine = { lightType = 'point', @@ -7950,102 +5504,36 @@ local unitLights = { color2r = 1, color2g = 0.9, color2b = 0.2, colortime = 0, r = 0.6, g = 0.45, b = 0.1, a = 0.115, modelfactor = 0.3, specular = 0, scattering = 2.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armbats'] = { top = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 42, posz = -22, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aftlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 9, posz = -65, radius = 2.9, - dirx = 0, diry = 1, dirz = 1, theta = -2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontgun1 = { - lightType = 'point', - pieceName = 'sleeve2', - lightConfig = { posx = 10.0, posy = 6.2, posz = -0.4, radius = 0.8, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontgun2 = { - lightType = 'point', - pieceName = 'sleeve2', - lightConfig = { posx = -10.0, posy = 6.2, posz = -0.4, radius = 0.8, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topgun1 = { - lightType = 'point', - pieceName = 'sleeve1', - lightConfig = { posx = 10.0, posy = 5.6, posz = -0.4, radius = 0.8, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topgun2 = { - lightType = 'point', - pieceName = 'sleeve1', - lightConfig = { posx = -10.0, posy = 5.6, posz = -0.4, radius = 0.8, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 42, posz = -22, radius = 22, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -16, posy = 18, posz = -4, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16, posy = 18, posz = -4, radius = 30, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 16, posy = 18, posz = -4, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelightr = { - lightType = 'beam', - pieceName = 'turret1', - lightConfig = { posx = -21, posy = 7.8, posz = -3.9, radius = 3.5, - pos2x = -21, pos2y = 7.8, pos2z = 2.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelightl = { - lightType = 'beam', - pieceName = 'turret1', - lightConfig = { posx = 21, posy = 7.8, posz = -3.9, radius = 3.5, - pos2x = 21, pos2y = 7.8, pos2z = 2.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 3, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 16, posy = 18, posz = -4, radius = 30, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armepoch'] = { @@ -8056,297 +5544,133 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.14, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 0.5, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - frontlight = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 11, posy = 9.5, posz = 54, radius = 9.4, - pos2x = -11, pos2y = 9.5, pos2z = 54, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + greenblob = { + lightType = 'point', + pieceName = 'dish', + lightConfig = { posx = 0, posy = 8, posz = 0, radius = 14, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0, g = 1, b = 0, a = 0.60000002, + modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - yellowlightr = { - lightType = 'beam', + turret1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15.5, posy = 40, posz = -33.5, radius = 10, - pos2x = -21, pos2y = 40, pos2z = -39, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.4, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -20, posy = 41, posz = -36, radius = 40, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - yellowlightl = { - lightType = 'beam', + turret2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15.5, posy = 40, posz = -33.5, radius = 10, - pos2x = 21, pos2y = 40, pos2z = -39, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.4, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 20, posy = 41, posz = -36, radius = 40, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - sidelightl = { - lightType = 'beam', + turret3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15, posy = 13, posz = -2, radius = 11.4, - pos2x = 15, pos2y = 13, pos2z = -22, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -20, posy = 41, posz = -75, radius = 35, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - sidelightr = { - lightType = 'beam', + turret4 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = 13, posz = -2, radius = 11.4, - pos2x = -15, pos2y = 13, pos2z = -22, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 20, posy = 41, posz = -75, radius = 35, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - sideglowl = { + side1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15, posy = 11, posz = -12, radius = 27, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 15, posz = -5, radius = 27, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - sideglowr = { + side2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = 11, posz = -12, radius = 27, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 15, posz = -19, radius = 27, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - maingunglowr = { - lightType = 'point', - pieceName = 'tur1', - lightConfig = { posx = -24, posy = 8.2, posz = -5, radius = 7.6, - dirx = 0, diry = 0, dirz = 0.25, theta = -8.2, - color2r = -2, color2g = -2, color2b = -2, colortime = 120, - r = -1, g = 1, b = 1.2, a = 1.5, - modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - maingunglowl = { - lightType = 'point', - pieceName = 'tur1', - lightConfig = { posx = 24, posy = 8.2, posz = -5, radius = 7.6, - dirx = 0, diry = 0, dirz = 0.25, theta = -8.2, - color2r = -2, color2g = -2, color2b = -2, colortime = 120, - r = -1, g = 1, b = 1.2, a = 1.5, - modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile1A = { - lightType = 'beam', - pieceName = 'misbox1', - lightConfig = { posx = -4.7, posy = 4.6, posz = 6.6, radius = 1.3, - pos2x = -4.7, pos2y = 4.6, pos2z = 4.2, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile1B = { - lightType = 'beam', - pieceName = 'misbox1', - lightConfig = { posx = 4.7, posy = 4.6, posz = 6.6, radius = 1.3, - pos2x = 4.7, pos2y = 4.6, pos2z = 4.2, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile2A = { - lightType = 'beam', - pieceName = 'misbox2', - lightConfig = { posx = -4.7, posy = 4.6, posz = 6.6, radius = 1.3, - pos2x = -4.7, pos2y = 4.6, pos2z = 4.2, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile2B = { - lightType = 'beam', - pieceName = 'misbox2', - lightConfig = { posx = 4.7, posy = 4.6, posz = 6.6, radius = 1.3, - pos2x = 4.7, pos2y = 4.6, pos2z = 4.2, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenblob = { - lightType = 'point', - pieceName = 'dish', - lightConfig = { posx = 0, posy = 8, posz = 0, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.6, - modelfactor = 0.8, specular = 0.9, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- turret1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -20, posy = 41, posz = -36, radius = 40, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- turret2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 20, posy = 41, posz = -36, radius = 40, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - backlightwhite1 = { + side3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -20, posy = 41, posz = -75, radius = 30, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.1, + lightConfig = { posx = -15, posy = 15, posz = -5, radius = 27, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - backlightwhite2 = { + side4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 20, posy = 41, posz = -75, radius = 30, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.1, + lightConfig = { posx = -15, posy = 15, posz = -19, radius = 27, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- side2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 15, posy = 15, posz = -19, radius = 27, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -15, posy = 15, posz = -5, radius = 27, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -15, posy = 15, posz = -19, radius = 27, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- front1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 7, posy = 10.5, posz = 54, radius = 27, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- front2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -7, posy = 10.5, posz = 54, radius = 27, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.05, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - frontturretf = { + front1 = { lightType = 'point', - pieceName = 'sleeve2', - lightConfig = { posx = 0, posy = 8, posz = 1.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, + pieceName = 'base', + lightConfig = { posx = 7, posy = 10.5, posz = 54, radius = 27, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - frontturretb = { + front2 = { lightType = 'point', - pieceName = 'sleeve2', - lightConfig = { posx = 0, posy = 8, posz = -1.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 1, b = 1, a = 0.45, + pieceName = 'base', + lightConfig = { posx = -7, posy = 10.5, posz = 54, radius = 27, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - midturret1f = { + frontturret = { lightType = 'point', - pieceName = 'sleeve4', - lightConfig = { posx = 0, posy = 8, posz = 1.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, + pieceName = 'sleeve2', + lightConfig = { posx = 0, posy = 8, posz = 0, radius = 14, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - midturret1b = { + midturret1 = { lightType = 'point', pieceName = 'sleeve4', - lightConfig = { posx = 0, posy = 8, posz = -1.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - midturret2f = { - lightType = 'point', - pieceName = 'sleeve5', - lightConfig = { posx = 0, posy = 8, posz = 1.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.45, + lightConfig = { posx = 0, posy = 8, posz = 0, radius = 14, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - midturret2b = { + midturret2 = { lightType = 'point', pieceName = 'sleeve5', - lightConfig = { posx = 0, posy = 8, posz = -1.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 1, b = 1, a = 0.45, + lightConfig = { posx = 0, posy = 8, posz = 0, radius = 14, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashl = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 28.7, posy = 8, posz = 13.3, radius = 1.5, - color2r = -8, color2g = -8, color2b = -8, colortime = 40, - r = -1, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashr = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -28.7, posy = 8, posz = 13.3, radius = 1.5, - color2r = -8, color2g = -8, color2b = -8, colortime = 40, - r = -1, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfepocht4'] = { @@ -8357,7 +5681,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret2 = { lightType = 'point', @@ -8366,7 +5690,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret3 = { lightType = 'point', @@ -8375,7 +5699,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret4 = { lightType = 'point', @@ -8384,7 +5708,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', @@ -8393,7 +5717,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', @@ -8402,7 +5726,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side3 = { lightType = 'point', @@ -8411,7 +5735,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side4 = { lightType = 'point', @@ -8420,7 +5744,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', @@ -8429,7 +5753,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -8438,7 +5762,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, frontturret = { lightType = 'point', @@ -8447,7 +5771,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, midturret1 = { lightType = 'point', @@ -8456,7 +5780,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, midturret2 = { lightType = 'point', @@ -8465,7 +5789,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', @@ -8474,7 +5798,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', @@ -8483,7 +5807,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', @@ -8492,7 +5816,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', @@ -8501,55 +5825,36 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.7, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcrus'] = { - teamtopglow = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 9.8, posz = -1.6, radius = 3, - pos2x = 0, pos2y = 9.8, pos2z = 1.2, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, turret1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -6.7, posy = 3.5, posz = 11.7, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.7, posy = 3.5, posz = 11.7, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, turret2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 6.7, posy = 3.5, posz = 11.7, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.7, posy = 3.5, posz = 11.7, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', pieceName = 'foregun', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontgun = { - lightType = 'point', - pieceName = 'foregun', - lightConfig = { posx = 0, posy = -0.6, posz = 10.1, radius = 2.2, - color2r = 0.9, color2g = 0, color2b = 0, colortime = 33, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', @@ -8558,296 +5863,77 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backgun = { - lightType = 'point', - pieceName = 'aftgun', - lightConfig = { posx = 0, posy = -0.6, posz = 9.9, radius = 2.2, - color2r = 0.9, color2g = 0, color2b = 0, colortime = 33, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 6, posy = 5.2, posz = -49.2, radius = 1.3, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -6, posy = 5.2, posz = -49.2, radius = 1.3, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightdepthcharge = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -6, posy = 5.2, posz = -7, radius = 200, - color2r = 0.35, color2g = 0.37, color2b = 0.45, colortime = 120, - dirx = 0, diry = -0.7, dirz = 0.6, theta = 0.55, - r = 0.69, g = 0.75, b = 0.9, a = 0.1, - modelfactor = 0.5, specular = 0.3, scattering = 14.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armserp'] = { - headlighttorpedo1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -2, posy = 14.2, posz = 22, radius = 70, colortime = -2, - dirx = -0.2, diry = -0.3, dirz = 1, theta = 0.24, - r = 0.69, g = 0.75, b = 0.9, a = 0.20, - modelfactor = -0.5, specular = -0.3, scattering = 10, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlighttorpedo2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 2, posy = 14.2, posz = 22, radius = 70, colortime = -2, - dirx = 0.2, diry = -0.3, dirz = 1, theta = 0.24, - r = 0.69, g = 0.75, b = 0.9, a = 0.20, - modelfactor = -0.5, specular = -0.3, scattering = 10, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesfront = { - lightType = 'beam', - pieceName = 'torso', - lightConfig = { posx = 5, posy = 20.5, posz = 20.5, radius = 3.8, - pos2x = -5, pos2y = 20.5, pos2z = 20.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + eyes = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 20.5, posz = 21.5, radius = 22, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 20.5, posz = 21.5, radius = 11, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - -- r = 1.2, g = 1, b = 0.2, a = 0.33, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armaas'] = { eyes = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -4.5, posy = 12.5, posz = 33, radius = 1.6, - pos2x = 4.5, pos2y = 12.5, pos2z = 33, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 12.5, posz = 34, radius = 17, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.055, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - fronteye1 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -4.5, posy = 4.5, posz = 36, radius = 1.5, - dirx = 0, diry = 1, dirz = 0, theta = -1.3, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1.1, g = 1, b = 0.2, a = 1.8, - modelfactor = 0.6, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronteye2 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 4.5, posy = 4.5, posz = 36, radius = 1.5, - dirx = 0, diry = 1, dirz = 0, theta = -1.3, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1.1, g = 1, b = 0.2, a = 1.8, - modelfactor = 0.6, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight1 = { - lightType = 'cone', - pieceName = 'turretgun2', - lightConfig = { posx = -3.9, posy = 3, posz = 8, radius = 350, colortime = -1.5, - dirx = -0.06, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight2 = { - lightType = 'cone', - pieceName = 'turretgun2', - lightConfig = { posx = 3.9, posy = 3, posz = 8, radius = 350, colortime = -1.5, - dirx = 0.06, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 0, posy = 12.5, posz = 34, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - aalight1 = { + front1 = { lightType = 'point', - pieceName = 'turretgun2', - lightConfig = { posx = -3.9, posy = 3, posz = 13, radius = 8, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -4.5, posy = 5, posz = 38, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - aalight2 = { + front2 = { lightType = 'point', - pieceName = 'turretgun2', - lightConfig = { posx = 3.9, posy = 3, posz = 13, radius = 8, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile1A = { - lightType = 'beam', - pieceName = 'missilebox1', - lightConfig = { posx = -3.9, posy = 4, posz = 5.7, radius = 1.2, - pos2x = -3.9, pos2y = 4, pos2z = 3.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile1B = { - lightType = 'beam', - pieceName = 'missilebox1', - lightConfig = { posx = 3.9, posy = 4, posz = 5.7, radius = 1.2, - pos2x = 3.9, pos2y = 4, pos2z = 3.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile2A = { - lightType = 'beam', - pieceName = 'missilebox2', - lightConfig = { posx = -3.9, posy = 4, posz = 5.7, radius = 1.2, - pos2x = -3.9, pos2y = 4, pos2z = 3.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalightsmissile2B = { - lightType = 'beam', - pieceName = 'missilebox2', - lightConfig = { posx = 3.9, posy = 4, posz = 5.7, radius = 1.2, - pos2x = 3.9, pos2y = 4, pos2z = 3.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 4.5, posy = 5, posz = 38, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- front1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4.5, posy = 5, posz = 38, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.04, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- front2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4.5, posy = 5, posz = 38, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.04, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armmls'] = { nanolight1 = { lightType = 'point', pieceName = 'nanoemit', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontlight = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 4, posy = 10.5, posz = -6.1, radius = 2.8, - pos2x = -4, pos2y = 10.5, pos2z = -6.1, - color2r = -4, color2g = -4, color2b = -4, colortime = 30, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontlightl = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -6.4, posy = 10.5, posz = -9.6, radius = 2.4, - pos2x = -5.3, pos2y = 10.5, pos2z = -6.3, - color2r = -4, color2g = -4, color2b = -4, colortime = 30, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontlightr = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 6.4, posy = 10.5, posz = -9.6, radius = 2.4, - pos2x = 5.3, pos2y = 10.5, pos2z = -6.3, - color2r = -4, color2g = -4, color2b = -4, colortime = 30, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - frontbuildflashl = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 9.8, posy = 2.5, posz = 6.6, radius = 4, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 10.5, posz = -5.5, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - frontbuildflashr = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -9.8, posy = 2.5, posz = 6.6, radius = 4, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 10.5, posz = -5.5, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 10.5, posz = -5.5, radius = 18, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 10.5, posz = -5.5, radius = 18, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0.25, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armrecl'] = { nanolight1 = { @@ -8857,43 +5943,43 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 14, posz = 19, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 14, posz = 20, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8.5, posy = 8.5, posz = 24.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8.5, posy = 8.5, posz = 24.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8.5, posy = 8.5, posz = 24.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8.5, posy = 8.5, posz = 24.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6.5, posz = -5, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 0.9, b = 0.1, a = 1.2, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8.5, posz = -5, radius = 35, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['correcl'] = { @@ -8904,7 +5990,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -8913,7 +5999,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corplat'] = { @@ -8924,7 +6010,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -8933,97 +6019,79 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 3.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 3.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'nano1', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'nano3', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'nano4', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 37, posy = 19, posz = -7.5, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 40, posy = 19, posz = -7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 37, posy = 19, posz = 7.5, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 40, posy = 19, posz = 7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -37, posy = 19, posz = -7.5, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -40, posy = 19, posz = -7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -37, posy = 19, posz = 7.5, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -40, posy = 19, posz = 7.5, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coravp'] = { @@ -9034,7 +6102,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlightB = { -- this is the lightname lightType = 'cone', @@ -9043,16 +6111,15 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2 = { -- this is the lightname + lifetime = 0, sustain = 0, animtype = 0}, + },buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit2', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 21, dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2B = { -- this is the lightname lightType = 'cone', @@ -9061,381 +6128,182 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'nano3', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'nano4', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight5 = { lightType = 'point', pieceName = 'nano5', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight6 = { lightType = 'point', pieceName = 'nano6', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight7 = { lightType = 'point', pieceName = 'nano7', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight8 = { lightType = 'point', pieceName = 'nano8', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -39, posy = 7, posz = -53, radius = 11, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -35, posy = 7, posz = -42, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 39, posy = 7, posz = -53, radius = 11, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 35, posy = 7, posz = -42, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -27, posy = 7, posz = -62, radius = 11, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -24, posy = 7, posz = -51, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 27, posy = 7, posz = -62, radius = 11, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 24, posy = 7, posz = -51, radius = 30, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armdecade'] = { - frontlight = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 2.3, posy = 8.8, posz = 18.5, radius = 2.4, - pos2x = -2.3, pos2y = 8.8, pos2z = 18.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 9, posz = 18.5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - back = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = -3.6, posz = -30, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -2.5, - r = -1, g = 1, b = 1, a = 1.0, - modelfactor = 0.3, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 3, posz = 20, radius = 65, - dirx = 0, diry = -0.08, dirz = 1, theta = 0.22, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headfrontleft = { + top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2, posy = 4.5, posz = 30.2, radius = 3, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - gunglow1A = { - lightType = 'point', - pieceName = 'abarrela', - lightConfig = { posx = 0, posy = 0.2, posz = 8.9, radius = 2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.2, g = 0.9, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - gunglow1B = { - lightType = 'point', - pieceName = 'abarrelb', - lightConfig = { posx = 0, posy = 0.2, posz = 9.9, radius = 2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.2, g = 0.9, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - gunglow2A = { - lightType = 'point', - pieceName = 'bbarrela', - lightConfig = { posx = 0, posy = 0.2, posz = 8.9, radius = 2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.2, g = 0.9, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - gunglow2B = { - lightType = 'point', - pieceName = 'bbarrelb', - lightConfig = { posx = 0, posy = 0.2, posz = 9.9, radius = 2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = 1.2, g = 0.9, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10, posy = 7, posz = 7, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headfrontright = { + top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2, posy = 4.5, posz = 30.2, radius = 3, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10, posy = 7, posz = 7, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top1 = { + front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10, posy = 7, posz = 7, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- top2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 10, posy = 7, posz = 7, radius = 5, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - -- r = 1.2, g = 1, b = 0.2, a = 0.5, - -- modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - sidelightl = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 11, posy = 7.0, posz = 8, radius = 5, - pos2x = 11, pos2y = 7.0, pos2z = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelightr = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -11, posy = 7.0, posz = 8, radius = 5, - pos2x = -11, pos2y = 7.0, pos2z = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 9, posz = 18.5, radius = 23, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, ['armlship'] = { back = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 16, posz = -29, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelightl = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 3, posy = 10.0, posz = 0, radius = 5, - pos2x = 3, pos2y = 10.0, pos2z = -5.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sidelight3r = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -3, posy = 9.0, posz = 0., radius = 5, - pos2x = -3, pos2y = 9.0, pos2z = -5.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - weaponglow = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 0, posz = 33, radius = 9, - color2r = 0.4, color2g = 0.7, color2b = 1.2, colortime = 30, - r = 0.2, g = 0.5, b = 1, a = 0.6, - modelfactor = 0.1, specular = 0.75, scattering = 1.2, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - weaponspark = { - lightType = 'point', - pieceName = 'spark_emit', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 55, - color2r = 0, color2g = 0, color2b = 0, colortime = 2, - r = 1, g = 1, b = 1, a = 0.85, - modelfactor = 0.3, specular = 0.75, scattering = 0.3, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lightningweaponflash = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 3.2, posz = 23, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -4.6, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 1, b = 1.2, a = 1.2, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 18, posz = -29, radius = 30, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - lightningweaponflash2 = { + turret = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 4.2, posz = 23, radius = 4.6, - dirx = 0, diry = 0, dirz = 0.25, theta = -4.2, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 1, b = 1.2, a = 1.5, - modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13, posz = -2, radius = 22, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- turret = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 0, posy = 13, posz = -2, radius = 22, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.08, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, turretfront1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 5.7, posy = 0, posz = 16.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5.5, posy = 0, posz = 16.5, radius = 7, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, turretfront2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -5.7, posy = 0, posz = 16.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalights1 = { - lightType = 'beam', - pieceName = 'misbox', - lightConfig = { posx = -3, posy = 3, posz = 4.3, radius = 0.9, - pos2x = -3, pos2y = 3, pos2z = 2.7, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalights2 = { - lightType = 'beam', - pieceName = 'misbox', - lightConfig = { posx = 3, posy = 3, posz = 4.3, radius = 0.9, - pos2x = 3, pos2y = 3, pos2z = 2.7, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5.5, posy = 0, posz = 16.5, radius = 7, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['correcl'] = { @@ -9446,7 +6314,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -9455,7 +6323,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front3 = { lightType = 'point', @@ -9464,7 +6332,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye1 = { lightType = 'point', @@ -9473,7 +6341,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye2 = { lightType = 'point', @@ -9482,7 +6350,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye3 = { lightType = 'point', @@ -9491,7 +6359,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -9500,7 +6368,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -9509,7 +6377,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -9518,7 +6386,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', @@ -9527,7 +6395,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top5 = { lightType = 'point', @@ -9536,7 +6404,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top6 = { lightType = 'point', @@ -9545,18 +6413,18 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsd'] = { eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 17, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 17, posz = 0, radius = 33, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corscreamer'] = { @@ -9567,7 +6435,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.085, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -9576,491 +6444,271 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.085, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsub'] = { - eyesfront = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -1.2, posy = 6.5, posz = 22.5, radius = 3, - pos2x = 1.2, pos2y = 6.5, pos2z = 22.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6.5, posz = 25, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesfrontup = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -1.2, posy = 11, posz = -0.9, radius = 3, - pos2x = 1.2, pos2y = 11, pos2z = -0.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11, posz = -0.5, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlighttorpedo = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 9.2, posz = 12, radius = 60, colortime = -2, - dirx = 0, diry = -0.3, dirz = 1, theta = 0.18, - r = 0.69, g = 0.75, b = 0.9, a = 0.20, - modelfactor = -0.5, specular = -0.3, scattering = 10, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 6.5, posz = 25, radius = 14, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 11, posz = -0.5, radius = 13, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corpship'] = { eyes1 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 12, posz = 5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.25, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyeshighfront = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -1.8, posy = 11.3, posz = 2.2, radius = 2, - pos2x = 1.8, pos2y = 11.3, pos2z = 2.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 0, posy = 25.5, posz = -17, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 34.5, posz = -29.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 0, posy = 34, posz = -29.5, radius = 6, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, antenna2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.5, posy = 30, posz = -29.5, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.5, posy = 30, posz = -29.5, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.5, posy = 32, posz = -29.5, radius = 2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2.5, posy = 32, posz = -29.5, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsjam'] = { - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 19, posz = -6, radius = 17, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - eyesfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -1.2, posy = 19.9, posz = -7.9, radius = 2.5, - pos2x = 1.2, pos2y = 19.9, pos2z = -7.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - cloaklightred = { + eyes1 = { lightType = 'point', - pieceName = 'jam', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.9, - modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redjambarr = { - lightType = 'beam', - pieceName = 'jam', - lightConfig = { posx = -9.7, posy = 3.8, posz = -25.7, radius = 0.9, - pos2x = -8.5, pos2y = 5.1, pos2z = -25.7, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redjambarr2 = { - lightType = 'beam', - pieceName = 'jam', - lightConfig = { posx = -9.7, posy = 3.8, posz = -27.5, radius = 0.9, - pos2x = -8.5, pos2y = 5.1, pos2z = -27.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redjambarl = { - lightType = 'beam', - pieceName = 'jam', - lightConfig = { posx = 9.7, posy = 3.8, posz = -25.7, radius = 0.9, - pos2x = 8.5, pos2y = 5.1, pos2z = -25.7, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redjambarl2 = { - lightType = 'beam', - pieceName = 'jam', - lightConfig = { posx = 9.7, posy = 3.8, posz = -27.5, radius = 0.9, - pos2x = 8.5, pos2y = 5.1, pos2z = -27.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 0, posy = 19, posz = -6, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- redmid = { - -- lightType = 'point', - -- pieceName = 'jam', - -- lightConfig = { posx = -9.4, posy = 4.8, posz = -25.7, radius = 1.2, - -- color2r = -4, color2g = -4, color2b = -4, colortime = 15, - -- r = 1.5, g = 0, b = 0, a = 2.5, - -- modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corroy'] = { - eyeshighfront = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -2.8, posy = 7.1, posz = 4.2, radius = 2, - pos2x = 2.8, pos2y = 7.1, pos2z = 4.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyeshighglow = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 21.5, posz = -30, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6.5, posz = -11.5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topgun1 = { + eyes2 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -7.2, posy = 0, posz = 10.6, radius = 0.9, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 5.5, posy = 6.5, posz = -17, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.035, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topgun2 = { + eyes3 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 7.2, posy = 0, posz = 10.6, radius = 0.9, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyeslowleft = { - lightType = 'beam', pieceName = 'base', - lightConfig = { posx = 3.8, posy = 5.8, posz = -20, radius = 1.6, - pos2x = 3.8, pos2y = 5.8, pos2z = -15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5.5, posy = 6.5, posz = -17, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.035, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyeslowright = { - lightType = 'beam', + eyes4 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.8, posy = 5.8, posz = -20, radius = 1.6, - pos2x = -3.8, pos2y = 5.8, pos2z = -15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 21.5, posz = -30, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyeslowfront = { - lightType = 'beam', + eyes5 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -1.0, posy = 5.8, posz = -14, radius = 1.6, - pos2x = 1.0, pos2y = 5.8, pos2z = -14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 21.5, posz = -35, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - depthchargeflash = { - lightType = 'beam', + eyes6 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -0.7, posy = 8.8, posz = 22.5, radius = 1.0, - pos2x = 0.7, pos2y = 8.8, pos2z = 22.5, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 21.5, posz = -35, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 6.5, posz = -11.5, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.05, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 5.5, posy = 6.5, posz = -17, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.035, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -5.5, posy = 6.5, posz = -17, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.035, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes5 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 21.5, posz = -35, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.04, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes6 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 21.5, posz = -35, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.04, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armpt'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.8, posy = 4.5, posz = 4.2, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3.8, posy = 4.5, posz = 4.2, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.8, posy = 4.5, posz = 4.2, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.0, posy = 2.8, posz = -3.9, radius = 1.5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.0, posy = 2.8, posz = -3.9, radius = 1.5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenblob1 = { - lightType = 'point', - pieceName = 'radar', - lightConfig = { posx = 0, posy = 2, posz = 0, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.33, - modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.8, posy = 4.5, posz = 4.2, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsy'] = { - buildlight1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, - dirx = 1, diry = 0, dirz = 0, theta = 0.99, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight1B = { -- this is the lightname - lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, - dirx = -1, diry = 0, dirz = 0, theta = 0.99, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 0, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.45, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, nanolight1 = { lightType = 'point', pieceName = 'beam1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'beam2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'beam3', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', pieceName = 'beam4', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, inner1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -25, posy = 16.5, posz = 21.5, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -29, posy = 20, posz = 27, radius = 42, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 25, posy = 16.5, posz = 21.5, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 29, posy = 20, posz = 27, radius = 42, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -25, posy = 16.5, posz = -21.5, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -29, posy = 20, posz = -27, radius = 42, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 25, posy = 16.5, posz = -21.5, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 29, posy = 20, posz = -27, radius = 42, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, nanotop1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 1, b = 0.2, a = 0.65, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3, posz = 0, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, nanotop2 = { lightType = 'point', pieceName = 'nano2', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 1, b = 0.2, a = 0.65, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3, posz = 0, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, nanotop3 = { lightType = 'point', pieceName = 'nano3', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 1, b = 0.2, a = 0.65, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3, posz = 0, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, nanotop4 = { lightType = 'point', pieceName = 'nano4', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 1, b = 0.2, a = 0.65, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3, posz = 0, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanotop4 = { + lightType = 'point', + pieceName = 'nano4', + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armavp'] = { @@ -10071,7 +6719,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlightB = { -- this is the lightname lightType = 'cone', @@ -10080,7 +6728,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, },buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight2_emit', @@ -10088,7 +6736,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2B = { -- this is the lightname lightType = 'cone', @@ -10097,290 +6745,242 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'nano1', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', pieceName = 'nano3', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - frontvent1 = { + front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -46, posy = 34, posz = 37, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -38, posy = 28, posz = 30, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- front2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -38, posy = 28, posz = 11, radius = 25, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 1, b = 1, a = 0.7, - -- modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - frontvent3 = { + front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 46, posy = 34, posz = 37, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -38, posy = 28, posz = 11, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- front4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 38, posy = 28, posz = 11, radius = 25, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 1, b = 1, a = 0.7, - -- modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - frontbarcenter = { - lightType = 'beam', + front3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 38, posy = 28, posz = 30, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + front4 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 33, posz = 0, radius = 10.5, - pos2x = 12, pos2y = 33, pos2z = 0, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 38, posy = 28, posz = 11, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - backmainglow = { + back0 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 28, posz = -65, radius = 25, --50 - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 4}, + lightConfig = { posx = 0, posy = 28, posz = -66, radius = 50, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -22, posy = 28, posz = -60, radius = 15, + lightConfig = { posx = -22, posy = 28, posz = -60, radius = 31, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 22, posy = 28, posz = -60, radius = 15, + lightConfig = { posx = 22, posy = 28, posz = -60, radius = 31, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backside1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -33, posy = 37, posz = -53, radius = 10, + lightConfig = { posx = -33, posy = 37, posz = -53, radius = 27, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backside2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -33, posy = 22, posz = -58, radius = 10, + lightConfig = { posx = -33, posy = 22, posz = -58, radius = 28, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backside3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -33, posy = 11, posz = -55, radius = 10, + lightConfig = { posx = -33, posy = 11, posz = -55, radius = 22, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backside4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 33, posy = 37, posz = -53, radius = 10, + lightConfig = { posx = 33, posy = 37, posz = -53, radius = 27, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backside5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 33, posy = 22, posz = -58, radius = 10, + lightConfig = { posx = 33, posy = 22, posz = -58, radius = 28, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backside6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 33, posy = 11, posz = -55, radius = 10, + lightConfig = { posx = 33, posy = 11, posz = -55, radius = 22, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid0 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 28, posz = 5, radius = 50, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -16, posy = 28, posz = 0, radius = 34, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 16, posy = 28, posz = 0, radius = 34, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -33, posy = 38, posz = -6, radius = 26, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid4 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -33, posy = 28, posz = 1, radius = 26, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid5 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 33, posy = 38, posz = -6, radius = 26, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid6 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 33, posy = 28, posz = 1, radius = 26, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- mid0 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 28, posz = 5, radius = 15, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -16, posy = 28, posz = 0, radius = 10, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 16, posy = 28, posz = 0, radius = 10, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -33, posy = 38, posz = -6, radius = 10, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -33, posy = 28, posz = 1, radius = 10, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid5 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 33, posy = 38, posz = -6, radius = 10, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid6 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 33, posy = 28, posz = 1, radius = 10, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armalab'] = { - buildlight1 = { -- this is the lightname + buildlight = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildlight1B = { -- this is the lightname + buildlightB = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 0, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 0, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2 = { -- this is the lightname + lifetime = 0, sustain = 0, animtype = 0}, + },buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight2_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2B = { -- this is the lightname lightType = 'cone', @@ -10389,109 +6989,45 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = -1, g = 1, b = 1, a = 0.8, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = -1, g = 1, b = 1, a = 0.8, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 28.5, posz = -3, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 24, posz = 6, radius = 18, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.08, + modelfactor = 0.3, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamleftpoint = { + }, + ['armamsub'] = { + nanolight1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 36, posy = 15, posz = -5.8, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 1.2, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamleft = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 32, posy = 16, posz = -5.8, radius = 3.5, - pos2x = 45, pos2y = 9, pos2z = -5.8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamright = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -32, posy = 16, posz = -5.8, radius = 3.5, - pos2x = -45, pos2y = 9, pos2z = -5.8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlefttop = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 11.5, posy = 63, posz = -53.7, radius = 3.5, - pos2x = 14, pos2y = 57, pos2z = -53.7, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamrighttop = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -11.5, posy = 63, posz = -53.7, radius = 3.5, - pos2x = -14, pos2y = 57, pos2z = -53.7, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teambacktop = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 0, posy = 55, posz = -67.5, radius = 8.5, - pos2x = 0, pos2y = 27, pos2z = -68.8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = -1, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['armamsub'] = { - nanolight1 = { - lightType = 'point', - pieceName = 'beam1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.3, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'beam1', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -10500,7 +7036,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', @@ -10509,7 +7045,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armplat'] = { @@ -10520,16 +7056,16 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', pieceName = 'blink', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 12, + lightConfig = { posx = 0, posy = 6, posz = 0, radius = 15, color2r = 0, color2g = 0.3, color2b = 0, colortime = 50, r = 0, g = 1, b = 0, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', @@ -10538,7 +7074,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -10547,7 +7083,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', @@ -10556,7 +7092,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', @@ -10565,45 +7101,18 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armaap'] = { - buildlightflare1 = { - lightType = 'point', - pieceName = 'cagelight_emit1', - lightConfig = { posx = 0, posy = 0.1, posz = 0, radius = 7, - color2r = -11, color2g = -11, color2b = -11, colortime = 0, - r = 1.1, g = 0.8, b = 0.2, a = 2, - modelfactor = -0.4, specular = 0, scattering = 0, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlightflare2 = { - lightType = 'point', - pieceName = 'cagelight_emit2', - lightConfig = { posx = 0, posy = 0.1, posz = 0, radius = 7, - color2r = -11, color2g = -11, color2b = -11, colortime = 0, - r = 1.1, g = 0.8, b = 0.2, a = 2, - modelfactor = -0.4, specular = 0, scattering = 0, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, buildlight = { lightType = 'cone', pieceName = 'cagelight_emit1', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlightB = { - lightType = 'cone', - pieceName = 'cagelight_emit1', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = -1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -10611,44 +7120,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2B = { - lightType = 'cone', - pieceName = 'cagelight_emit2', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = 1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenlight = { - lightType = 'point', - pieceName = 'blink', - lightConfig = { posx = 0, posy = -1.5, posz = 0, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblob = { lightType = 'point', @@ -10657,52 +7130,52 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 50, r = 0, g = 1, b = 0, a = 0.5, modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', - pieceName = 'flare1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.35, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', - pieceName = 'flare2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.35, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight3 = { + lightType = 'point', + pieceName = 'nano3', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.35, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight4 = { + lightType = 'point', + pieceName = 'nano4', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.35, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- nanolight3 = { - -- lightType = 'point', - -- pieceName = 'nano3', - -- lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = -1, g = 1, b = 1, a = 0.35, - -- modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- nanolight4 = { - -- lightType = 'point', - -- pieceName = 'nano4', - -- lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = -1, g = 1, b = 1, a = 0.35, - -- modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, blinka = { lightType = 'point', pieceName = 'blinka', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 18, + lightConfig = { posx = -1, posy = 1, posz = 0, radius = 20, color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, --dishlight = { -- lightType = 'point', @@ -10711,217 +7184,156 @@ local unitLights = { -- color2r = 0, color2g = 0.5, color2b = 0.3, colortime = 30, -- r = 0, g = 1, b = 0, a = 0.6, -- modelfactor = 0.01, specular = 0.5, scattering = 0.5, lensflare = 10, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, blinkb = { lightType = 'point', pieceName = 'blinkb', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 18, + lightConfig = { posx = -1, posy = 1, posz = 0, radius = 20, color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.2, specular = 0.5, scattering = 2, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- towermid1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -38, posy = 53, posz = 0, radius = 40, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- towermid2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -40, posy = 53, posz = -16, radius = 35, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- towermid3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -40, posy = 53, posz = 16, radius = 35, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.07, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - towerwhiteback1 = { + towermid1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -38, posy = 53, posz = 0, radius = 40, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + towermid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 20, posy = 48, posz = -68, radius = 28, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.25, - modelfactor = 0.2, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -40, posy = 53, posz = -16, radius = 35, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + towermid3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -40, posy = 53, posz = 16, radius = 35, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - towerwhiteback2 = { + towerback1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -20, posy = 48, posz = -68, radius = 28, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.25, - modelfactor = 0.2, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -82, posy = 53, posz = -16, radius = 35, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - towerwhite2 = { + towerback2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 53, posz = -18, radius = 28, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.25, - modelfactor = 0.2, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -82, posy = 53, posz = 16, radius = 35, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, plateau1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -20, posy = 40, posz = -25, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -21, posy = 42, posz = -35, radius = 18, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, plateau2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -20, posy = 40, posz = 40, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -21, posy = 42, posz = 35, radius = 18, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, plateau3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 20, posy = 40, posz = -25, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.3, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 17, posy = 42, posz = -35, radius = 18, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, plateau4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 20, posy = 40, posz = 40, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.3, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamleft = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 52, posy = 29, posz = 6.5, radius = 5.5, - pos2x = 62, pos2y = 25.1, pos2z = 6.6, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = -1, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamright = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -52, posy = 29, posz = 7.0, radius = 5.5, - pos2x = -62, pos2y = 25.1, pos2z = 7.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = -1, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 17, posy = 42, posz = 35, radius = 18, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corlab'] = { nanolight1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = -1, posz = 1, radius = 19, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.9, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', - lightConfig = { posx = 0, posy = -1, posz = 1, radius = 19, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.9, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- teamlightbuildbay = { - -- lightType = 'point', - -- pieceName = 'body', - -- lightConfig = { posx = -27, posy = 8.5, posz = 16, radius = 17, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = -1.2, g = 1, b = 0.3, a = 0.75, - -- modelfactor = 0.3, specular = 0.3, scattering = 0.8, lensflare = 10, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, resevoir1 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = -36, posy = 29, posz = -6, radius = 17, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.5, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -36, posy = 29, posz = -6, radius = 38, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, resevoir2 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = -36, posy = 29, posz = -26, radius = 17, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.5, - r = 1.2, g = 1, b = 0.3, a = 0.66, - modelfactor = 0.3, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -36, posy = 29, posz = -26, radius = 38, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.08, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - - -- build orbit light that moves on the Z axis, and changes color - -- buildanimlight = { - -- lightType = 'point', - -- pieceName = 'body', - -- lightConfig = { posx = 0, posy = 29, posz = -16, radius = 38, - -- dirx = 1, diry = 0, dirz = 0.0, theta = -20, - -- color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = 30, - -- r = -1, g = 1, b = 0.3, a = 0.3, - -- modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, - ['leglab'] = { + ['legvp'] = { nanolight1 = { lightType = 'point', pieceName = 'flare1', @@ -10929,7 +7341,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -10938,7 +7350,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', @@ -10947,7 +7359,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', @@ -10956,571 +7368,490 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight1_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, - dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, + dirx = 1, diry = 1, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight2_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, - dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, + dirx = 1, diry = 1, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - forge = { - lightType = 'point', - pieceName = 'forge', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 1, g = 0.5, b = 0.1, a = 0.8, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, - ['corvp'] = { + ['leglab'] = { nanolight1 = { lightType = 'point', - pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', - pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', - pieceName = 'nano3', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare3', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', - pieceName = 'nano4', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare4', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight = { -- this is the lightname lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = 1, diry = 0, dirz = 0, theta = 0.99, + pieceName = 'cagelight1_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, + dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = -1, diry = 0, dirz = 0, theta = 0.99, + pieceName = 'cagelight2_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, + dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash = { + forge = { lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'forge', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 1, g = 0.5, b = 0.1, a = 0.8, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir1 = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -46, posy = 10, posz = -25, radius = 9, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + }, + ['legavp'] = { + buildlight1 = { --top spinning light + lightType = 'cone', + pieceName = 'buildlightLPoint', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir2 = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 46, posy = 10, posz = -25, radius = 9, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + buildlight2 = { -- other top spinning light + lightType = 'cone', + pieceName = 'buildlightRPoint', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir3 = { + -- + cannisterlight1 = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -46, posy = 10, posz = -38, radius = 9, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'cannisterLight', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.6, + modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir4 = { + cannisterlight2 = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 46, posy = 10, posz = -38, radius = 9, - color2r = 0, color2g = 0, color2b = -1, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'cannisterLight2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.6, + modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- resevoir5 = { - -- lightType = 'point', - -- pieceName = 'body', - -- lightConfig = { posx = -36, posy = 29, posz = 42, radius = 7, - -- color2r = 0, color2g = 0, color2b = -1, colortime = -1, - -- r = 1.2, g = 1, b = 0.3, a = 0.75, - -- modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - resevoir6 = { + cannisterlight3 = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -27.5, posy = 29, posz = 42, radius = 9, - color2r = 0, color2g = 0, color2b = -1, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'cannisterLight3', + lightConfig = { posx = 0, posy = 0, posz =0, radius = 15, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.6, + modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- resevoir7 = { - -- lightType = 'point', - -- pieceName = 'body', - -- lightConfig = { posx = 36, posy = 29, posz = 42, radius = 7, - -- color2r = 0, color2g = 0, color2b = -1, colortime = -1, - -- r = 1.2, g = 1, b = 0.3, a = 0.75, - -- modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - resevoir8 = { + -- + pipelight1 = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 27.5, posy = 29, posz = 42, radius = 9, - color2r = 0, color2g = 0, color2b = -1, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corhp'] = { - buildlight = { - lightType = 'cone', - pieceName = 'cagelight_emit1', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, - dirx = 1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2 = { - lightType = 'cone', - pieceName = 'cagelight_emit2', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, - dirx = -1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'pipeLight1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 5, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.6, + modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash2 = { + pipelight2 = { lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'pipeLight2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 5, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.6, + modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, + -- nanolight1 = { lightType = 'point', - pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'sprayL1A', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', - pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'sprayL2A', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', - pieceName = 'nano3', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'sprayL3A', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', - pieceName = 'nano4', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'sprayR1A', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - resevoir1 = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -38, posy = 10, posz = 37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - resevoir2 = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 38, posy = 10, posz = 37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir3 = { + nanolight5 = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -38, posy = 10, posz = -37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'sprayR2A', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir4 = { + nanolight6 = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 38, posy = 10, posz = -37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'sprayR3A', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, + }, - ['corfhp'] = { - buildlight = { - lightType = 'cone', - pieceName = 'cagelight_emit1', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, - dirx = 1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + ['leghp'] = { + buildlight1 = { + lightType = 'cone', + pieceName = 'buildlight1Point', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + dirx = 0, diry = 0, dirz = 1, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', - pieceName = 'cagelight_emit2', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, - dirx = -1, diry = 0, dirz = 0, theta = 0.7, + pieceName = 'buildlight2Point', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + dirx = 0, diry = 0, dirz = 1, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + buildlight3 = { + lightType = 'cone', + pieceName = 'buildlight3Point', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + dirx = 0, diry = 0, dirz = -1, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + buildlight4 = { + lightType = 'cone', + pieceName = 'buildlight4Point', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + dirx = 0, diry = 0, dirz = -1, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, + nanolight1 = { lightType = 'point', - pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', - pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', - pieceName = 'nano3', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare3', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', - pieceName = 'nano4', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'flare4', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir1 = { + }, + ['legavrad'] ={ + greenbloba = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -38, posy = 10, posz = 37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'radarlight1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0, g = 1, b = 0, a = 0.15, + modelfactor = 0.4, specular = 0.9, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir2 = { + greenblobb = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 38, posy = 10, posz = 37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'radarlight2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0, g = 1, b = 0, a = 0.15, + modelfactor = 0.4, specular = 0.9, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir3 = { + greenblobc = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -38, posy = 10, posz = -37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'radarlight3', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0, g = 1, b = 0, a = 0.15, + modelfactor = 0.4, specular = 0.9, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir4 = { + greenblobd = { lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 38, posy = 10, posz = -37, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'radarlight4', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0, g = 1, b = 0, a = 0.15, + modelfactor = 0.4, specular = 0.9, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, }, - ['corap'] = { - greenblob = { + ['legavjam'] ={ + cloaklightred = { lightType = 'point', - pieceName = 'blink', - lightConfig = { posx = 3, posy = 5, posz = 3, radius = 13, - color2r = -2, color2g = -2, color2b = -2, colortime = 50, - r = 0, g = 1, b = 0, a = 0.9, - modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'cloaklight', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.6, + modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + flashinglight1 = { + lightType = 'point', + pieceName = 'pointlight1', + alliedOnly = true, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 2, + color2r = 0, color2g = 0, color2b = 0, colortime = 15, + r = 2, g = 0, b = 0, a = 1, + modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, + + }, + flashinglight2 = { + lightType = 'point', + pieceName = 'pointlight2', + alliedOnly = true, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 2, + color2r = 0, color2g = 0, color2b = 0, colortime = 15, + r = 2, g = 0, b = 0, a = 1, + modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['corvp'] = { nanolight1 = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight3 = { + lightType = 'point', + pieceName = 'nano3', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight4 = { + lightType = 'point', + pieceName = 'nano4', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 3.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, resevoir1 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = -50, posy = 15, posz = -18, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -46, posy = 12, posz = -29, radius = 16, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, resevoir2 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = -50, posy = 15, posz = -30, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 46, posy = 12, posz = -29, radius = 16, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, resevoir3 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = 46, posy = 12, posz = -31, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corapt3'] = { - nanolight1 = { - lightType = 'point', - pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 22, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.3, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanolight2 = { - lightType = 'point', - pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 22, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.3, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - resevoir1 = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -96, posy = 30, posz = -38, radius = 50, + lightConfig = { posx = -46, posy = 12, posz = -42, radius = 16, color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir2 = { + resevoir4 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = -96, posy = 30, posz = -58, radius = 50, + lightConfig = { posx = 46, posy = 12, posz = -42, radius = 16, color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir3 = { + resevoir5 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = 90, posy = 20, posz = -62, radius = 42, + lightConfig = { posx = -36, posy = 30, posz = 41, radius = 18, color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['legapt3'] = { - nanolight1 = { - lightType = 'point', - pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 22, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.3, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - nanolight2 = { - lightType = 'point', - pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 22, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.3, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - resevoir1 = { + resevoir6 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = -96, posy = 30, posz = -38, radius = 50, + lightConfig = { posx = -27.5, posy = 30, posz = 41, radius = 18, color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir2 = { + resevoir7 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = -96, posy = 30, posz = -58, radius = 50, + lightConfig = { posx = 36, posy = 30, posz = 41, radius = 18, color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - resevoir3 = { + resevoir8 = { lightType = 'point', pieceName = 'body', - lightConfig = { posx = 90, posy = 20, posz = -62, radius = 42, + lightConfig = { posx = 27.5, posy = 30, posz = 41, radius = 18, color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, - ['armhp'] = { + ['corhp'] = { buildlight = { lightType = 'cone', pieceName = 'cagelight_emit1', @@ -11528,7 +7859,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -11537,82 +7868,82 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash1 = { + nanolight1 = { lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash2 = { + nanolight2 = { lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - nanolight1 = { + nanolight3 = { lightType = 'point', - pieceName = 'emitr', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'nano3', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - nanolight2 = { + nanolight4 = { lightType = 'point', - pieceName = 'emitl', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'nano4', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner1 = { + resevoir1 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = -38, posy = 4, posz = 35, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = -45, posy = 12, posz = 44, radius = 18, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner2 = { + resevoir2 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = 40, posy = 4, posz = 36, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = 45, posy = 12, posz = 44, radius = 18, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner3 = { + resevoir3 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = -40, posy = 4, posz = -36, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = -45, posy = 12, posz = -44, radius = 18, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner4 = { + resevoir4 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = 40, posy = 4, posz = -36, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = 45, posy = 12, posz = -44, radius = 18, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, - ['armfhp'] = { + ['corfhp'] = { buildlight = { lightType = 'cone', pieceName = 'cagelight_emit1', @@ -11620,7 +7951,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -11629,334 +7960,733 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.7, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight1', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', - pieceName = 'emitr', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', - pieceName = 'emitl', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 0.7, + pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner1 = { + nanolight3 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = -38, posy = 4, posz = 35, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'nano3', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner2 = { + nanolight4 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = 40, posy = 4, posz = 36, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'nano4', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner3 = { + }, + ['corap'] = { + greenblob = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = -40, posy = 4, posz = -36, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'blink', + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 50, + r = 0, g = 1, b = 0, a = 0.5, + modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - corner4 = { + nanolight1 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = 40, posy = 4, posz = -36, radius = 15.6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight2 = { + lightType = 'point', + pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['armvp'] = { buildlight = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, dirx = 1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 19, dirx = -1, diry = 0, dirz = 0, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - nanolight = { + resevoir1 = { lightType = 'point', - pieceName = 'nano', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = 20, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = -48, posy = 15, posz = -19, radius = 26, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - wheel1 = { + resevoir2 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = -3, posy = 0, posz = 13.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.9, - modelfactor = 0.15, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = -48, posy = 15, posz = -29, radius = 26, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - wheel1B = { + resevoir3 = { lightType = 'point', - pieceName = 'wheel1', - lightConfig = { posx = 3, posy = 0, posz = 13.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.9, - modelfactor = 0.15, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = 45, posy = 10, posz = -31, radius = 22, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - wheel2 = { + }, + ['corapt3'] = { + nanolight1 = { lightType = 'point', - pieceName = 'wheel2', - lightConfig = { posx = 3, posy = 0, posz = 13.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.9, - modelfactor = 0.15, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 2, radius = 22, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - wheel2B = { + nanolight2 = { lightType = 'point', - pieceName = 'wheel2', - lightConfig = { posx = -3, posy = 0, posz = 13.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.9, - modelfactor = 0.15, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 22, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - base1 = { + resevoir1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -39, posy = 11, posz = 1, radius = 9.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.75, + pieceName = 'body', + lightConfig = { posx = -96, posy = 30, posz = -38, radius = 50, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - base2 = { + resevoir2 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 39, posy = 11, posz = 1, radius = 9.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.75, + pieceName = 'body', + lightConfig = { posx = -96, posy = 30, posz = -58, radius = 50, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['armap'] = { - buildlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = 1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildlight2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = -1, diry = 0, dirz = 0, theta = 0.7, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenlight = { + resevoir3 = { lightType = 'point', - pieceName = 'blink', - lightConfig = { posx = 0, posy = -1.5, posz = 0, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'body', + lightConfig = { posx = 90, posy = 20, posz = -62, radius = 42, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, + }, + ['legap'] = { greenblob = { lightType = 'point', pieceName = 'blink', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 15, + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 50, r = 0, g = 1, b = 0, a = 0.5, modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', - pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + pieceName = 'flare1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', - pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + pieceName = 'flare2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight3 = { lightType = 'point', - pieceName = 'nano3', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + pieceName = 'flare3', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight4 = { lightType = 'point', - pieceName = 'nano4', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + pieceName = 'flare4', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamleft = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 51, posy = 33, posz = 0, radius = 5.5, - pos2x = 61, pos2y = 29, pos2z = 0.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = -1, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['armlab'] = { buildlight = { -- this is the lightname lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = 1, diry = 0, dirz = 0, theta = 0.99, + pieceName = 'cagelight1_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, + dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildlight2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'cagelight_emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = -1, diry = 0, dirz = 0, theta = 0.99, - r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + }, + ['legaap'] = { + greenblob = { + lightType = 'point', + pieceName = 'blink', + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 50, + r = 0, g = 1, b = 0, a = 0.5, + modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', - pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, + pieceName = 'flare1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight2 = { + lightType = 'point', + pieceName = 'flare3', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight3 = { + lightType = 'point', + pieceName = 'flare5', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight4 = { + lightType = 'point', + pieceName = 'flare7', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight1 = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight1_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, + dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight2 = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight2_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, + dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['legalab'] = { + nanolight1 = { + lightType = 'point', + pieceName = 'flare1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight2 = { + lightType = 'point', + pieceName = 'flare3', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight3 = { + lightType = 'point', + pieceName = 'flare5', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight4 = { + lightType = 'point', + pieceName = 'flare7', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight1_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, + dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight2 = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight2_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 32, + dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['legafus'] = { + fusionglow = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 72, + color2r = 0, color2g = 0, color2b = 0, colortime = 80, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.2, specular = 1.2, scattering = 2, lensflare = 5, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow2 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 82, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.1, specular = 1.2, scattering = 1.5, lensflare = 5, + lifetime = 0, sustain = 0, animtype = 0}, + }, + -- fusionorb = { + -- lightType = 'point', + -- pieceName = 'emit', + -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, + -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, + -- r = 1, g = 1, b = 1, a = 0.2, + -- modelfactor = 0.1, specular = 1, scattering = 6, lensflare = 10, + -- lifetime = 0, sustain = 0, animtype = 0}, + -- }, + }, + ['legapt3'] = { + nanolight1 = { + lightType = 'point', + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 2, radius = 22, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 22, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + resevoir1 = { + lightType = 'point', + pieceName = 'body', + lightConfig = { posx = -96, posy = 30, posz = -38, radius = 50, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + resevoir2 = { + lightType = 'point', + pieceName = 'body', + lightConfig = { posx = -96, posy = 30, posz = -58, radius = 50, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + resevoir3 = { + lightType = 'point', + pieceName = 'body', + lightConfig = { posx = 90, posy = 20, posz = -62, radius = 42, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.07, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armhp'] = { + buildlight = { + lightType = 'cone', + pieceName = 'cagelight_emit1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + dirx = 1, diry = 0, dirz = 0, theta = 0.7, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight2 = { + lightType = 'cone', + pieceName = 'cagelight_emit2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + dirx = -1, diry = 0, dirz = 0, theta = 0.7, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight1 = { + lightType = 'point', + pieceName = 'emitr', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - buildflash = { + nanolight2 = { lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emitl', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamleft = { - lightType = 'beam', + corner1 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = -40, posy = 4, posz = 36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner2 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = 40, posy = 4, posz = 36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner3 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = -40, posy = 4, posz = -36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner4 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = 40, posy = 4, posz = -36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armfhp'] = { + buildlight = { + lightType = 'cone', + pieceName = 'cagelight_emit1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + dirx = 1, diry = 0, dirz = 0, theta = 0.7, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight2 = { + lightType = 'cone', + pieceName = 'cagelight_emit2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + dirx = -1, diry = 0, dirz = 0, theta = 0.7, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight1 = { + lightType = 'point', + pieceName = 'emitr', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight2 = { + lightType = 'point', + pieceName = 'emitl', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner1 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = -40, posy = 4, posz = 36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner2 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = 40, posy = 4, posz = 36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner3 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = -40, posy = 4, posz = -36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner4 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = 40, posy = 4, posz = -36, radius = 33, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armvp'] = { + buildlight = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + dirx = 1, diry = 0, dirz = 0, theta = 0.99, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight2 = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + dirx = -1, diry = 0, dirz = 0, theta = 0.99, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight = { + lightType = 'point', + pieceName = 'nano', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + wheel1 = { + lightType = 'point', + pieceName = 'wheel1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 33, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.15, + modelfactor = 0.15, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + wheel2 = { + lightType = 'point', + pieceName = 'wheel2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 33, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.13, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + base1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 32, posy = 16, posz = -11.8, radius = 3.5, - pos2x = 45, pos2y = 8, pos2z = -11.8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = -1, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -40, posy = 5, posz = 0, radius = 22, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.075, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamright = { - lightType = 'beam', + base2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -32, posy = 16, posz = -11.8, radius = 3.5, - pos2x = -45, pos2y = 8, pos2z = -11.8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = -1, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 40, posy = 5, posz = 0, radius = 22, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.075, + modelfactor = 0.3, specular = 0.4, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armap'] = { + buildlight = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + dirx = 1, diry = 0, dirz = 0, theta = 0.7, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight2 = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + dirx = -1, diry = 0, dirz = 0, theta = 0.7, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.2, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + greenblob = { + lightType = 'point', + pieceName = 'blink', + lightConfig = { posx = 0, posy = 3, posz = 0, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 50, + r = 0, g = 1, b = 0, a = 0.5, + modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight1 = { + lightType = 'point', + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight2 = { + lightType = 'point', + pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight3 = { + lightType = 'point', + pieceName = 'nano3', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight4 = { + lightType = 'point', + pieceName = 'nano4', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armlab'] = { + buildlight = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + dirx = 1, diry = 0, dirz = 0, theta = 0.99, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, + lifetime = 0, sustain = 0, animtype = 0}, + }, + buildlight2 = { -- this is the lightname + lightType = 'cone', + pieceName = 'cagelight_emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + dirx = -1, diry = 0, dirz = 0, theta = 0.99, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight1 = { + lightType = 'point', + pieceName = 'nano1', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + nanolight2 = { + lightType = 'point', + pieceName = 'nano2', + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.3, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armck'] = { @@ -11967,8 +8697,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = -0.3, radius = 15, dirx = 1, diry = 0, dirz = 0, theta = 0.65, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 2.5, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -11976,537 +8706,249 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = -0.3, radius = 15, dirx = -1, diry = 0, dirz = 0, theta = 0.65, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.1, specular = 0.2, scattering = 2.5, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 0, posz = -2.5, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'nano', - lightConfig = { posx = 0, posy = 0, posz = 3, radius = 11, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.9, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 12, posz = -7, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.4, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7.5, posz = -6, radius = 23, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.12, + modelfactor = 0.22, specular = 0.4, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armart'] = { light = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -3, posy = 3.5, posz = 11.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.5, a = 0.7, - modelfactor = 0.5, specular = 0.3, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightglow1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -12, posy = 12, posz = 6, radius = 1.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -4, - r = 1, g = 1, b = 1, a = 1.0, - modelfactor = 0.5, specular = 0.3, scattering = 2, lensflare = 25, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightglow2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 12, posy = 12, posz = 6, radius = 1.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -4, - r = 1, g = 1, b = 1, a = 1.0, - modelfactor = 0.5, specular = 0.3, scattering = 2, lensflare = 25, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -12, posy = 12, posz = 5, radius = 35, - dirx = 0.12, diry = -0.22, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.30, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 12, posy = 12, posz = 5, radius = 35, - dirx = -0.12, diry = -0.22, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.30, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - back = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = -13, radius = 8, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.3, specular = 0.5, scattering = 0.97, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 3, posz = 12, radius = 18, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.1, + modelfactor = 0.3, specular = 0.5, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armflash'] = { back1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4.5, posy = 6, posz = -13, radius = 8, + lightConfig = { posx = -4.5, posy = 6, posz = -13, radius = 9, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.3, specular = 0.5, scattering = 0.97, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4.5, posy = 6, posz = -13, radius = 8, + lightConfig = { posx = 4.5, posy = 6, posz = -13, radius = 9, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.3, specular = 0.5, scattering = 0.97, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 4.5, posy = 5.8, posz = 3.6, radius = 3, - color2r = 0.4, color2g = 0.3, color2b = 0.01, colortime = 60, - r = 1.1, g = 0.9, b = 0.3, a = 0.7, - modelfactor = 0.2, specular = 0.5, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -4.5, posy = 5.8, posz = 3.6, radius = 3, - color2r = 0.4, color2g = 0.3, color2b = 0.01, colortime = 60, - r = 1.2, g = 0.95, b = 0.35, a = 0.7, - modelfactor = 0.2, specular = 0.5, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - barrel1 = { - lightType = 'cone', - pieceName = 'lbarrel', - lightConfig = { posx = 0, posy = 0, posz = 11, radius = 10, - dirx = 0, diry = 0, dirz = -1, theta = 0.19, - r = 1.6, g = 1, b = 0.2, a = 0.9, - modelfactor = 0.7, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - barrel2 = { - lightType = 'cone', - pieceName = 'rbarrel', - lightConfig = { posx = 0, posy = 0, posz = 11, radius = 10, - dirx = 0, diry = 0, dirz = -1, theta = 0.19, - r = 1.6, g = 1, b = 0.2, a = 0.9, - modelfactor = 0.7, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - searchlightleft = { - lightType = 'cone', + front1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10, posy = 3, posz = -5, radius = 60, - dirx = -0.1, diry = -0.08, dirz = 1, theta = 0.22, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4.5, posy = 6, posz = 3.5, radius = 9, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.04, + modelfactor = 0.33, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - searchlightright = { - lightType = 'cone', + front2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10, posy = 3, posz = -5, radius = 60, - dirx = 0.1, diry = -0.08, dirz = 1, theta = 0.22, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 6, posz = 3.5, radius = 9, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.04, + modelfactor = 0.33, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - frontlightleft = { + barrel1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 9, posy = 5.5, posz = 10.5, radius = 7, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'lbarrel', + lightConfig = { posx = 0, posy = 0, posz = 2, radius = 14, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.33, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - frontlightright = { + barrel2 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -9, posy = 5.5, posz = 10.5, radius = 7, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'rbarrel', + lightConfig = { posx = 0, posy = 0, posz = 2, radius = 14, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.33, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- barrel1old = { - -- lightType = 'point', - -- pieceName = 'lbarrel', - -- lightConfig = { posx = 0, posy = 2, posz = 2, radius = 5, - -- color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, - -- r = 1, g = 1, b = 0.3, a = 0.6, - -- modelfactor = 0.33, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- barrel2old = { - -- lightType = 'point', - -- pieceName = 'rbarrel', - -- lightConfig = { posx = 0, posy = 0, posz = 2, radius = 14, - -- color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, - -- r = 1, g = 1, b = 0.3, a = 0.05, - -- modelfactor = 0.33, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corfav'] = { back = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 8, posz = -11, radius = 8, - color2r = 0.5, color2g = 0.1, color2b = 0.1, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.8, + lightConfig = { posx = 0, posy = 9, posz = -10, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3, posy = 7.7, posz = 9, radius = 4, + lightConfig = { posx = -3.8, posy = 9.8, posz = 10, radius = 8, color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.2, posy = 7.7, posz = 9, radius = 4, - color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamintel = { - lightType = 'point', - pieceName = 'rdrdish', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 5, + lightConfig = { posx = 3.8, posy = 9.8, posz = 10, radius = 8, color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = -1, g = 1, b = 1, a = 0.9, - modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 8, posz = 3, radius = 70, - dirx = 0, diry = -0.05, dirz = 1, theta = 0.21, - r = 1, g = 1, b = 0.89, a = 0.44, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfav'] = { light = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = -10, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = 25, - r = 1.2, g = 1, b = 0.4, a = 0.8, - modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 6, posz = 10, radius = 120, - dirx = 0, diry = -0.05, dirz = 1, theta = 0.21, - r = 1, g = 1, b = 0.89, a = 0.44, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - headlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 4.7, posz = 8, radius = 4, - color2r = 0.8, color2g = 0.9, color2b = 1, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topteamback1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 13.4, posz = -11.2, radius = 2.1, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = -1, g = 1, b = 1, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topteamback2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 12, posz = -11.2, radius = 2.1, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = -1, g = 1, b = 1, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11.6, posz = -12, radius = 10, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.09, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armjanus'] = { - turretlamp = { + turret = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 1, posz = 9, radius = 6, - color2r = 1, color2g = 1, color2b = 1, colortime = -1, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 1, posz = 6.5, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12.8, posy = 2.5, posz = 16, radius = 8, - color2r = 1, color2g = 0.9, color2b = 0.4, colortime = -1.5, - r = 1, g = 0.85, b = 0.3, a = 0.6, - modelfactor = 0.3, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12.5, posy = 2.5, posz = 19, radius = 14, + color2r = 1, color2g = 0.9, color2b = 0.4, colortime = 0, + r = 1, g = 0.85, b = 0.3, a = 0.055, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12.8, posy = 2.5, posz = 16, radius = 8, - color2r = 1, color2g = 0.9, color2b = 0.4, colortime = -1.5, - r = 1, g = 0.85, b = 0.3, a = 0.6, - modelfactor = 0.3, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight1 = { - lightType = 'cone', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 1, posz = -8, radius = 80, - dirx = -0.1, diry = -0.07, dirz = 1, theta = 0.09, - r = 1, g = 0.8, b = 0.8, a = 0.4, - modelfactor = -0.4, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight2 = { - lightType = 'cone', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 1, posz = -8, radius = 80, - dirx = 0.1, diry = -0.07, dirz = 1, theta = 0.09, - r = 1, g = 0.8, b = 0.8, a = 0.55, - modelfactor = -0.4, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamside1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 8, posz = -14, radius = 9.5, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 1.5, - modelfactor = 0.2, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- teambase1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 6, posz = 16, radius = 7.5, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = -1, g = 1, b = 1, a = 1.5, - -- modelfactor = 0.2, specular = 0.3, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- teambase2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 6, posz = 16, radius = 7.5, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = -1, g = 1, b = 1, a = 1.5, - -- modelfactor = 0.2, specular = 0.3, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - redglowl = { - lightType = 'point', - pieceName = 'barrell', - lightConfig = { posx = 0.3, posy = 0, posz = 5.7, radius = 4, - color2r = 0.2, color2g = 0.01, color2b = 0.01, colortime = 120, - r = 1, g = 0, b = 0, a = 1, - modelfactor = 0.2, specular = 0.1, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redglowr = { - lightType = 'point', - pieceName = 'barrelr', - lightConfig = { posx = -0.3, posy = 0, posz = 5.7, radius = 4, - color2r = 0.2, color2g = 0.01, color2b = 0.01, colortime = 120, - r = 1, g = 0, b = 0, a = 1, - modelfactor = 0.2, specular = 0.1, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12.5, posy = 2.5, posz = 19, radius = 14, + color2r = 1, color2g = 0.9, color2b = 0.4, colortime = 0, + r = 1, g = 0.85, b = 0.3, a = 0.055, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armpincer'] = { - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = 7, radius = 55, - dirx = 0, diry = -0.09, dirz = 1, theta = 0.5, - r = 1, g = 1, b = 0.89, a = 0.36, colortime = -3, - modelfactor = -0.9, specular = -0.3, scattering = 2.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, light = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = 14.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.5, a = 0.9, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 9, posz = -16.5, radius = 6.5, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtop1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -8.5, posy = 14.5, posz = -7, radius = 3, - color2r = 0.6, color2g = 0.6, color2b = 0.6, colortime = 60, - r = -1, g = 1, b = 1, a = 1.1, - modelfactor = 0.5, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtop2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 8.5, posy = 14.5, posz = -7, radius = 3, - color2r = 0.6, color2g = 0.6, color2b = 0.6, colortime = 60, - r = -1, g = 1, b = 1, a = 1.1, - modelfactor = 0.5, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtop3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -8.5, posy = 14.5, posz = 6.6, radius = 3, - color2r = 0.6, color2g = 0.6, color2b = 0.6, colortime = 60, - r = -1, g = 1, b = 1, a = 1.1, - modelfactor = 0.5, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtop4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 8.5, posy = 14.5, posz = 6.6, radius = 3, - color2r = 0.6, color2g = 0.6, color2b = 0.6, colortime = 60, - r = -1, g = 1, b = 1, a = 1.1, - modelfactor = 0.5, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 10, posz = 14, radius = 14, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.09, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsaber'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3, posy = 7.5, posz = 10.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3, posy = 7.5, posz = 10.5, radius = 12, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3, posy = 7.5, posz = 10.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3, posy = 7.5, posz = 10.5, radius = 12, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3, posy = 4.5, posz = -5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid1B = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -3, posy = 4.5, posz = -5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4.5, posz = -5, radius = 14, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.07, + modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsb'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.5, posy = 13.5, posz = 21.2, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3.5, posy = 13.5, posz = 21.2, radius = 14, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.5, posy = 13.5, posz = 21.2, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.5, posy = 13.5, posz = 21.2, radius = 14, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = -7.3, posy = 18, posz = -9, radius = 13, - color2r = 0.2, color2g = 0.7, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.7, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 7.3, posy = 18, posz = -9, radius = 13, - color2r = 0.2, color2g = 0.7, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.7, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, + r = 0.88, g = 0.83, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 11, posz = -29, radius = 9, - color2r = 0.2, color2g = 0.7, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.7, a = 0.9, - modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11, posz = -29, radius = 16, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 7, + r = 0.88, g = 0.83, b = 0.2, a = 0.14, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', @@ -12515,7 +8957,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.6, g = 1, b = 0.6, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', @@ -12524,7 +8966,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.6, g = 1, b = 0.6, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustc = { lightType = 'point', @@ -12533,98 +8975,47 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.6, g = 1, b = 0.6, a = 0.35, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsam'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8.7, posy = 4, posz = 18.3, radius = 3.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.15, g = 1, b = 0.35, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8.7, posy = 4, posz = 19.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.35, colortime = 0, + r = 1, g = 1, b = 0.35, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8.7, posy = 4, posz = 18.3, radius = 3.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.15, g = 1, b = 0.35, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rocketglowambient = { - lightType = 'point', - pieceName = 'mlauncher', - lightConfig = { posx = 0, posy = 0, posz = 10, radius = 9.2, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = -1, g = 1, b = 0.35, a = 0.3, - modelfactor = 0.5, specular = 0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rocketglow = { - lightType = 'beam', - pieceName = 'mlauncher', - lightConfig = { posx = -3.4, posy = 1.5, posz = 9.55, radius = 1.4, - pos2x = 3.4, pos2y = 1.5, pos2z = 9.55, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 0.1, b = 0.1, a = 4.0, - modelfactor = 0.6, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rocketglow2 = { - lightType = 'beam', - pieceName = 'mlauncher', - lightConfig = { posx = -3.4, posy = -1.1, posz = 9.55, radius = 1.4, - pos2x = 3.4, pos2y = -1.1, pos2z = 9.55, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 0.1, b = 0.1, a = 4.0, - modelfactor = 0.6, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'mlauncher', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 120, colortime = -1.5, - dirx = 0, diry = 0.1, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - back = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -3.4, posy = 4.5, posz = -21, radius = 1.4, - pos2x = 3.4, pos2y = 4.5, pos2z = -21, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.1, b = 0.1, a = 1.6, - modelfactor = 0.6, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8.7, posy = 4, posz = 19.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.35, colortime = 0, + r = 1, g = 1, b = 0.35, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armstump'] = { - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 0, posz = 3, radius = 70, - dirx = 0, diry = -0.08, dirz = 1, theta = 0.7, - r = 1, g = 1, b = 0.89, a = 0.36, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronthead = { + -- searchlight = { + -- lightType = 'cone', + -- pieceName = 'base', + -- lightConfig = { posx = 0, posy = 0, posz = 10, radius = 100, + -- dirx = 0, diry = -0.08, dirz = 1, theta = 0.25, + -- r = 1, g = 1, b = 1, a = 0.45, + -- modelfactor = 0, specular = 1, scattering = 1.5, lensflare = 0.6, + -- lifetime = 0, sustain = 0, animtype = 0}, + -- }, + frontbase = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 0, posz = 10, radius = 12, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.33, + lightConfig = { posx = 0, posy = 0, posz = 12, radius = 16, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.11, modelfactor = 0.25, specular = 0.4, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', @@ -12633,110 +9024,92 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.75, g = 0.75, b = 1, a = 0.09, modelfactor = 0.25, specular = 0.4, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontteamlight = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 4, posz = 7.5, radius = 6, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 0.75, b = 1, a = 0.8, - modelfactor = 0.3, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack = { lightType = 'point', pieceName = 'epack', - lightConfig = { posx = 0, posy = 2.5, posz = -6, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.15, g = 0.9, b = 0.4, a = 0.85, - modelfactor = 0.25, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = -6.5, radius = 18, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.11, + modelfactor = 0.25, specular = 0.4, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcrash'] = { eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 4.5, posz = 7.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.8, specular = 0.2, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4.5, posz = 7.5, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 13, posz = -12, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.2, b = 0.2, a = 0.66, - modelfactor = 0.6, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 14, posz = -15, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -13, posy = 13, posz = 0, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.2, b = 0.2, a = 0.66, - modelfactor = 0.6, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 14, posz = 0, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 13, posy = 13, posz = 0, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.2, b = 0.2, a = 0.66, - modelfactor = 0.6, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 10, posz = 0, radius = 300, colortime = -1.5, - dirx = 0, diry = 0.7, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 14, posz = 0, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corfast'] = { eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 0, posz = 6, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.8, + lightConfig = { posx = 0, posy = 0, posz = 5, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, flare = { lightType = 'point', pieceName = 'flare', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 10, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, armback = { lightType = 'point', pieceName = 'rlarm', - lightConfig = { posx = 0, posy = -2, posz = -4.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.65, + lightConfig = { posx = 0, posy = -2, posz = -4.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, armfront = { lightType = 'point', pieceName = 'rlarm', - lightConfig = { posx = 0, posy = -2, posz = 4.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 0.4, a = 0.9, + lightConfig = { posx = 0, posy = -2, posz = 4.5, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.09, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cornecro'] = { @@ -12747,43 +9120,34 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.25, specular = 0.35, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 4, posz = 10.5, radius = 8, - color2r = 0.3, color2g = 0.03, color2b = 0.01, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 0.85, - modelfactor = 0.6, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = 11.5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.13, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'flare1', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.5, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'flare2', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 13, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.5, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanoflash = { - lightType = 'point', - pieceName = 'corhexl', - lightConfig = { posx = 0, posy = 2.5, posz = -1.5, radius = 7, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armrectr'] = { @@ -12794,73 +9158,46 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.25, specular = 0.35, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack = { lightType = 'point', pieceName = 'pelvis', - lightConfig = { posx = 0, posy = 19, posz = -8, radius = 10, - color2r = 1, color2g = 1, color2b = 0.5, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.85, - modelfactor = 0.4, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 19, posz = -8, radius = 18, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.11, + modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'nano', - lightConfig = { posx = 0, posy = 0, posz = 3, radius = 15, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanoflash = { - lightType = 'point', - pieceName = 'pelvis', - lightConfig = { posx = 0, posy = 33, posz = -3.8, radius = 7, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1, g = 0.8, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- legwhiteleft = { - -- lightType = 'point', - -- pieceName = 'pelvis', - -- lightConfig = { posx = 10, posy = 17, posz = 2, radius = 3, - -- color2r = -11, color2g = -11, color2b = -11, colortime = 30, - -- r = 1, g = 1, b = 1, a = 1, - -- modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- legwhiteright = { - -- lightType = 'point', - -- pieceName = 'pelvis', - -- lightConfig = { posx = -10, posy = 17, posz = 2, radius = 3, - -- color2r = -15, color2g = -15, color2b = -15, colortime = 30, - -- r = 1, g = 1, b = 1, a = 1, - -- modelfactor = 0.2, specular = 0.6, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armmlv'] = { backpack = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 5, posz = -17, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - cloaklightred = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 3, posz = 15, radius = 6, - color2r = 0, color2g = 0, color2b = 1, colortime = 0, - r = 1, g = 0, b = 0, a = 0.6, - modelfactor = 0.5, specular = 0.5, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3, posz = -15, radius = 18, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.11, + modelfactor = 0.4, specular = 0.4, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, + --oaklightred = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = 0, posy = 8, posz = 8, radius = 10, + -- color2r = 0, color2g = 0, color2b = 1, colortime = 0, + -- r = 1, g = 0, b = 0, a = 0.3, + -- modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, + -- lifetime = 0, sustain = 0, animtype = 0}, + -- front = { lightType = 'point', pieceName = 'base', @@ -12868,43 +9205,43 @@ local unitLights = { color2r = 0.8, color2g = 0.8, color2b = 1, colortime = 0, r = 0.8, g = 0.8, b = 1, a = 0.06, modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -7, posy = 8, posz = -2, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.4, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7, posy = 8, posz = 0, radius = 14, + color2r = 0.75, color2g = 0.75, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, turret2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 7, posy = 8, posz = -2, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.4, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7, posy = 8, posz = 0, radius = 14, + color2r = 0.75, color2g = 0.75, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', pieceName = 'lflare', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 9, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', pieceName = 'rflare', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 9, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 15, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, idleBlink = { lightType = 'point', @@ -12913,7 +9250,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.9, specular = 0.35, scattering = 0.7, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armbanth'] = { @@ -12924,704 +9261,285 @@ local unitLights = { dirx = 0, diry = -0.12, dirz = 1, theta = 0.18, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna1 = { lightType = 'point', pieceName = 'antenna', - lightConfig = { posx = 3, posy = 27, posz = 1.5, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 2.5, - modelfactor = 0.8, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 1, posy = 24, posz = -1, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.15, + modelfactor = 0.2, specular = 0.2, scattering = 2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna2 = { lightType = 'point', pieceName = 'antenna', - lightConfig = { posx = 5, posy = 0, posz = 0, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 1, - modelfactor = 0.6, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 0, posz = 0, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.085, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 2, posz = 7, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0.75, g = 0.75, b = 1, a = 0.9, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = 7, radius = 12, + color2r = 0.75, color2g = 0.75, color2b = 1, colortime = 0, + r = 0.75, g = 0.75, b = 1, a = 0.09, + modelfactor = 0.2, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, torsotop = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 38, posz = -4, radius = 13, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 38, posz = -4, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, uparm1 = { lightType = 'point', pieceName = 'ruparm', - lightConfig = { posx = -7.5, posy = -5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.3, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7.5, posy = -5, posz = 0, radius = 15, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.08, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, uparm2 = { lightType = 'point', pieceName = 'luparm', - lightConfig = { posx = 7.5, posy = -5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.3, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7.5, posy = -5, posz = 0, radius = 15, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.08, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, arm1 = { lightType = 'point', pieceName = 'rloarm', - lightConfig = { posx = -10.5, posy = -1, posz = 5, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10.5, posy = -1, posz = 5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2 = { lightType = 'point', pieceName = 'lloarm', - lightConfig = { posx = 10.5, posy = -1, posz = 5, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10.5, posy = -1, posz = 5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, rocketbarrel = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -10, posy = 10, posz = -20, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 0.7, + lightConfig = { posx = -10, posy = 10, posz = -20, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 5.7, posy = 26, posz = 14, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1.2, g = 1, b = 0.2, a = 1.92, + lightConfig = { posx = 5.7, posy = 26, posz = 14, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -7, posy = 26, posz = 19, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = 180, - r = 1, g = 1, b = 1, a = 0.44, - modelfactor = 0.2, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7, posy = 26, posz = 19, radius = 17, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.09, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front3 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 10, posy = 14, posz = 19, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = 180, - r = 1, g = 1, b = 1, a = 0.44, - modelfactor = 0.2, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10, posy = 14, posz = 19, radius = 17, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.09, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 17, posy = 15, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.2, - modelfactor = 0.4, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 17, posy = 15.5, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.075, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -17, posy = 15.5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.2, - modelfactor = 0.4, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- turret = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 0, posy = 13, posz = 9, radius = 10, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 1, b = 1, a = 0.4, - -- modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - turretbeam = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 9.5, posz = 13, radius = 3.9, - pos2x = 0, pos2y = 10, pos2z = 0, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = -1, g = 1, b = 1, a = 1.0, - modelfactor = 0.3, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -17, posy = 15.5, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.075, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flashturret = { + turret = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 10, posz = 10, radius = 3, - dirx = 0, diry = 0, dirz = 1, theta = -12, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.1, b = 0.1, a = 3, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13, posz = 9, radius = 20, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.08, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, foot1 = { lightType = 'point', pieceName = 'rthigh', - lightConfig = { posx = -7, posy = -17, posz = 0.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7, posy = -17, posz = 0.5, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, foot2 = { lightType = 'point', pieceName = 'rthigh', - lightConfig = { posx = 7.5, posy = -17, posz = 0.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 9, posy = -17, posz = 0.5, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, foot3 = { lightType = 'point', pieceName = 'lthigh', - lightConfig = { posx = -7.5, posy = -17, posz = 0.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9, posy = -17, posz = 0.5, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, foot4 = { lightType = 'point', pieceName = 'lthigh', - lightConfig = { posx = 7, posy = -17, posz = 0.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7, posy = -17, posz = 0.5, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.2, specular = 0.2, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corkarg'] = { - eyesbeam = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 7.2, posy = 4.3, posz = 18.8, radius = 1.6, - pos2x = -7.2, pos2y = 4.3, pos2z = 18.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesglow = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 3, posz = 20, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.4, - modelfactor = 0.2, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topbeam = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 11.8, posz = 16.0, radius = 3.0, - pos2x = 0, pos2y = 15.7, pos2z = 11.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 1.9, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flashtop = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 13.5, posz = 14, radius = 2.8, - dirx = 0, diry = -1, dirz = 1, theta = -2.1, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightsourcefrontr = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -10.1, posy = 4.2, posz = 16.7, radius = 1.6, - pos2x = -10.5, pos2y = 4.2, pos2z = 16.7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightsourcefronl = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 10.1, posy = 4.2, posz = 16.7, radius = 1.6, - pos2x = 10.5, pos2y = 4.2, pos2z = 16.7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightl = { -- this is the lightname - lightType = 'cone', - pieceName = 'turret', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 10.1, posy = 4.2, posz = 16.7, radius = 110, colortime = -2, - dirx = 0.08, diry = -0.12, dirz = 1, theta = 0.25, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightr = { -- this is the lightname - lightType = 'cone', - pieceName = 'turret', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -10.1, posy = 4.2, posz = 16.7, radius = 110, colortime = -2, - dirx = -0.08, diry = -0.12, dirz = 1, theta = 0.25, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bottomlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 14, posz = 0, radius = 45, - color2r = 0.7, color2g = 0.7, color2b = 0.7, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.1, - modelfactor = 0.15, specular = 0.4, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight1 = { + eyes1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -12, posy = 23.8, posz = -3, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 1.2, - modelfactor = 0.4, specular = 0.5, scattering = 1.0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 5, posz = 22, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.2, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - aalight2 = { + eyes2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 12, posy = 23.8, posz = -3, radius = 5, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 1.2, - modelfactor = 0.4, specular = 0.5, scattering = 1.0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 5, posz = 22, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.2, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 4, posy = 5, posz = 22, radius = 17, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.08, - -- modelfactor = 0.2, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corjugg'] = { antenna1 = { lightType = 'point', pieceName = 'torso', lightConfig = { posx = -5, posy = 57.5, posz = -28, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0, b = 0, a = 0.9, - modelfactor = 0.3, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.15, + modelfactor = 0.2, specular = 0.2, scattering = 2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -1, posy = 47, posz = -28, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.2, a = 0.9, - modelfactor = 0.2, specular = 0.2, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1, posy = 47, posz = -28, radius = 6, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.11, + modelfactor = 0.2, specular = 0.2, scattering = 2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- searchlightmaintop = { - -- lightType = 'cone', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = -6.5, posy = 6.5, posz = -10, radius = 350, - -- dirx = 0, diry = 0, dirz = 1, theta = 0.15, - -- r = 1, g = 1, b = 1, a = 0.45, - -- modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- headlightsourcefrontr = { - -- lightType = 'point', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = -5.8, posy = 6.4, posz = -2.8, radius = 1.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 2, - -- modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - searchlightmainside = { + mainlight = { lightType = 'cone', pieceName = 'mainbarrel', - lightConfig = { posx = -14, posy = -1, posz = -30, radius = 350, colortime = -2, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 350, dirx = 0, diry = 0, dirz = 1, theta = 0.15, - r = 1, g = 1, b = 1, a = 0.55, + r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - headlightsourcemainside = { - lightType = 'beam', - pieceName = 'mainbarrel', - lightConfig = { posx = -14, posy = 2.2, posz = -7, radius = 3.8, - pos2x = -14, pos2y = -4, pos2z = -7.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 1, b = 1, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- headlightsourcefrontrb = { - -- lightType = 'beam', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = -5.5, posy = 6, posz = -2.8, radius = 1.2, - -- pos2x = -5.9, pos2y = 6.4, pos2z = -3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 2, - -- modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - weaponsglowmain = { - lightType = 'cone', - pieceName = 'mainbarrel', - lightConfig = { posx = 0, posy = 0, posz = -40, radius = 70, - dirx = 0, diry = 0, dirz = 1, theta = 0.10, - color2r = 0.18, color2g = 0.08, color2b = 0.03, colortime = 60, - r = 1.2, g = 0.8, b = 0.2, a = 1.2, - modelfactor = 0, specular = 1, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redglow = { - lightType = 'point', - pieceName = 'mainbarrel', - lightConfig = { posx = 0, posy = 0, posz = 5, radius = 7, - color2r = 0.18, color2g = 0.08, color2b = 0.03, colortime = 120, - r = 1, g = 0.15, b = 0.06, a = 1.5, - modelfactor = 0.5, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redburn = { - lightType = 'point', - pieceName = 'mainbarrel', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 7, - dirx = 0, diry = 0, dirz = 0.25, theta = -1.9, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 14, - r = 0.95, g = 0.66, b = 0.07, a = 0.4, - modelfactor = 0.5, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - yellowaccentburn = { - lightType = 'point', - pieceName = 'mainbarrel', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 7, - dirx = 0, diry = 0, dirz = 0.14, theta = -2.1, - color2r = 0.8, color2g = 0.7, color2b = 0.05, colortime = 14, - r = 0.95, g = 0.66, b = 0.07, a = 0.4, - modelfactor = 0.5, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lasertoptip = { - lightType = 'point', - pieceName = 'toplaser', - lightConfig = { posx = 0.2, posy = 4.1, posz = 13.4, radius = 2.6, - color2r = -30, color2g = -30, color2b = -30, colortime = 60, - r = 1, g = 0, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlasertopl = { - lightType = 'point', - pieceName = 'toplaser', - lightConfig = { posx = 2.3, posy = 6.4, posz = 0, radius = 2, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -2.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlasertopr = { - lightType = 'point', - pieceName = 'toplaser', - lightConfig = { posx = -2.3, posy = 6.4, posz = 0, radius = 2, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -2.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - laserright = { - lightType = 'point', - pieceName = 'rlaser', - lightConfig = { posx = 0.2, posy = 0, posz = 13.4, radius = 2.6, - color2r = -30, color2g = -30, color2b = -30, colortime = 60, - r = 1, g = 0, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlaserr1 = { - lightType = 'point', - pieceName = 'rlaser', - lightConfig = { posx = -2.2, posy = 2.2, posz = 0, radius = 2, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -2.4, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlaserr2 = { - lightType = 'point', - pieceName = 'rlaser', - lightConfig = { posx = 2.2, posy = 2.2, posz = 0, radius = 2, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -2.4, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - laserleft = { - lightType = 'point', - pieceName = 'llaser', - lightConfig = { posx = 0.2, posy = 0, posz = 13.4, radius = 2.6, - color2r = -30, color2g = -30, color2b = -30, colortime = 60, - r = 1, g = 0, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlaserl1 = { - lightType = 'point', - pieceName = 'llaser', - lightConfig = { posx = 2.2, posy = 2.2, posz = 0, radius = 2, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -2.4, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlaserl2 = { - lightType = 'point', - pieceName = 'llaser', - lightConfig = { posx = -2.2, posy = 2.2, posz = 0, radius = 2, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -2.4, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armvang'] = { top = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = -1.2, posy = 7.5, posz = 5.2, radius = 1.2, - dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.1, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 1.8, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top2 = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 1.9, posy = 7.5, posz = 7.8, radius = 1.5, - --dirx = 0, diry = 0, dirz = 0.6666667, theta = -1.1, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1.2, g = 1, b = 0.2, a = 1.4, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topblink = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0.2, posy = 7.1, posz = 3.9, radius = 0.9, - color2r = -7, color2g = -7, color2b = -7, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - targetlight = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0., posy = 9.1, posz = 27.8, radius = 3.9, - color2r = -2, color2g = -2, color2b = -2, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 9.1, posz = 25, radius = 370, - dirx = 0, diry = 0, dirz = 1, theta = 0.10, - r = 1, g = 1, b = 1, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamcolorsidel1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 10.7, posy = 6.8, posz = 5.9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = -1.2, g = 1, b = 0.2, a = 1.0, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamcolorsidel2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 10.7, posy = 6.8, posz = -0.2, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = -1.2, g = 1, b = 0.2, a = 1.0, - modelfactor = 0.2, specular = 0.2, scattering = 0.27, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamcolorsidel3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 10.7, posy = 6.8, posz = -6.4, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = -1.2, g = 1, b = 0.2, a = 1.0, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamcolorsider1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -10.7, posy = 6.8, posz = 5.9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = -1.2, g = 1, b = 0.2, a = 1.0, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamcolorsider2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -10.7, posy = 6.8, posz = -0.2, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = -1.2, g = 1, b = 0.2, a = 1.0, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamcolorsider3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -10.7, posy = 6.8, posz = -6.4, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = -1.2, g = 1, b = 0.2, a = 1.0, - modelfactor = 0.2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1, posy = 7.5, posz = 5, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0, a = 0.065, + modelfactor = 0.2, specular = 0.2, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corkorg'] = { - -- searchlight = { - -- lightType = 'cone', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 3, posz = 5.8, radius = 280, - -- dirx = 0, diry = -0.05, dirz = 1, theta = 0.85, - -- r = 0.99, g = 0.95, b = 0.88, a = 0.32, colortime = -3, - -- modelfactor = -0.8, specular = -0.3, scattering = 2.8, lensflare = 2, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - bodyglow = { + head1 = { lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = -5, posz = 8, radius = 30, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.9, b = 0.1, a = 0.3, - modelfactor = 0.4, specular = 0.2, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'head', + lightConfig = { posx = 0, posy = 18, posz = 20, radius = 33, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0, a = 0.2, + modelfactor = 0.2, specular = 0.2, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- noselight = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 0., posy = 3.5, posz = 14.5, radius = 3.9, - -- color2r = -2, color2g = -2, color2b = -2, colortime = -2, - -- r = 1.2, g = 1, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- bodyglowtop = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 48, posz = -5, radius = 20, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 120, - -- r = -1, g = 0.9, b = 0.1, a = 0.3, - -- modelfactor = 0.4, specular = 0.2, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - headtop = { - lightType = 'beam', + head2 = { + lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 13, posz = 16, radius = 7, - pos2x = 0, pos2y = 24, pos2z = -13, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1, g = 0.1, b = 0.1, a = 2.0, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 25, posz = 0, radius = 33, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0, a = 0.19, + modelfactor = 0.2, specular = 0.2, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 3, posz = 16.8, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.1, a = 1.2, - modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = 16, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0, a = 0.14, + modelfactor = 0.2, specular = 0.2, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulderlightkorgleft = { lightType = 'point', pieceName = 'luparm', - lightConfig = { posx = 10, posy = 20, posz = 0, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 1.0, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14, posy = 20, posz = 0, radius = 30, + color2r = 1, color2g = 0.2, color2b = 0, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.14, + modelfactor = 0.2, specular = 0.2, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulderlightkorgright = { lightType = 'point', pieceName = 'ruparm', - lightConfig = { posx = -10, posy = 20, posz = 0, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 1.0, - modelfactor = 0.4, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - gunglowright = { - lightType = 'point', - pieceName = 'rarm', - lightConfig = { posx = 2.5, posy = -16.2, posz = 11.5, radius = 4, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -2.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - gunglowleft = { - lightType = 'point', - pieceName = 'larm', - lightConfig = { posx = -2.5, posy = -16.2, posz = 11.5, radius = 4, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -2.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14, posy = 20, posz = 0, radius = 30, + color2r = 1, color2g = 0.2, color2b = 0, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.14, + modelfactor = 0.2, specular = 0.2, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcom'] = { @@ -13632,7 +9550,7 @@ local unitLights = { dirx = 0, diry = -0.25, dirz = 1, theta = 0.25999999, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 0.5, scattering = 3.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, -- buildlight1 = { -- this is the lightname -- lightType = 'cone', @@ -13641,7 +9559,7 @@ local unitLights = { -- dirx = 1, diry = 0, dirz = 0, theta = 0.99, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.15, specular = 0.3, scattering = 2, lensflare = 8, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- buildlight2 = { -- lightType = 'cone', @@ -13650,7 +9568,7 @@ local unitLights = { -- dirx = -1, diry = 0, dirz = 0, theta = 0.99, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.15, specular = 0.3, scattering = 2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, buildlight1 = { -- this is the lightname lightType = 'point', @@ -13659,7 +9577,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'point', @@ -13668,7 +9586,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, radarblip = { lightType = 'point', @@ -13677,7 +9595,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack = { lightType = 'point', @@ -13686,7 +9604,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.6, a = 0.3, modelfactor = 0.15, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder1 = { lightType = 'point', @@ -13695,7 +9613,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder2 = { lightType = 'point', @@ -13704,7 +9622,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hip1 = { lightType = 'point', @@ -13713,7 +9631,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hip2 = { lightType = 'point', @@ -13722,7 +9640,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -13731,7 +9649,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.33, colortime = 0, r = 1, g = 1, b = 0.33, a = 0.12, modelfactor = 0.2, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm1 = { lightType = 'point', @@ -13740,7 +9658,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.55, a = 0.14, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2 = { lightType = 'point', @@ -13749,7 +9667,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.4, a = 0.36, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, -- arm2gunlight1 = { -- lightType = 'point', @@ -13758,7 +9676,7 @@ local unitLights = { -- color2r = 1, color2g = 0.85, color2b = 0.3, colortime = 20, -- r = -0, g = 0, b = 0, a = 1.6, -- modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 10, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, arm2gunlightred = { lightType = 'point', @@ -13767,7 +9685,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 0.085, b = 0.03, a = 1.6, modelfactor = 0.15, specular = 0.5, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2gunsidelight1 = { lightType = 'point', @@ -13776,7 +9694,7 @@ local unitLights = { color2r = 1, color2g = 0.85, color2b = 0.3, colortime = 20, r = -0, g = 0, b = 0, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2gunsidelight2 = { lightType = 'point', @@ -13785,7 +9703,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 40, r = 1, g = 0.85, b = 0.3, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2gunsidelight3 = { lightType = 'point', @@ -13794,7 +9712,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 80, r = 1, g = 0.85, b = 0.3, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, chest1 = { lightType = 'point', @@ -13803,7 +9721,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, chest2 = { lightType = 'point', @@ -13812,7 +9730,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -13821,7 +9739,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcomlvl3'] = { @@ -13832,7 +9750,7 @@ local unitLights = { dirx = 0, diry = -0.25, dirz = 1, theta = 0.25999999, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 0.5, scattering = 3.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, -- buildlight1 = { -- this is the lightname -- lightType = 'cone', @@ -13841,7 +9759,7 @@ local unitLights = { -- dirx = 1, diry = 0, dirz = 0, theta = 0.99, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.15, specular = 0.3, scattering = 2, lensflare = 8, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- buildlight2 = { -- lightType = 'cone', @@ -13850,7 +9768,7 @@ local unitLights = { -- dirx = -1, diry = 0, dirz = 0, theta = 0.99, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.15, specular = 0.3, scattering = 2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, buildlight1 = { -- this is the lightname lightType = 'point', @@ -13859,7 +9777,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'point', @@ -13868,7 +9786,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, radarblip = { lightType = 'point', @@ -13877,7 +9795,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack = { lightType = 'point', @@ -13886,7 +9804,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.6, a = 0.3, modelfactor = 0.15, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder1 = { lightType = 'point', @@ -13895,7 +9813,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder2 = { lightType = 'point', @@ -13904,7 +9822,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hip1 = { lightType = 'point', @@ -13913,7 +9831,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hip2 = { lightType = 'point', @@ -13922,7 +9840,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -13931,7 +9849,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.33, colortime = 0, r = 1, g = 1, b = 0.33, a = 0.12, modelfactor = 0.2, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm1 = { lightType = 'point', @@ -13940,7 +9858,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.55, a = 0.14, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2 = { lightType = 'point', @@ -13949,7 +9867,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.4, a = 0.36, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, -- arm2gunlight1 = { -- lightType = 'point', @@ -13958,7 +9876,7 @@ local unitLights = { -- color2r = 1, color2g = 0.85, color2b = 0.3, colortime = 20, -- r = -0, g = 0, b = 0, a = 1.6, -- modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 10, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, arm2gunlightred = { lightType = 'point', @@ -13967,7 +9885,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 0.085, b = 0.03, a = 1.6, modelfactor = 0.15, specular = 0.5, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2gunsidelight1 = { lightType = 'point', @@ -13976,7 +9894,7 @@ local unitLights = { color2r = 1, color2g = 0.85, color2b = 0.3, colortime = 20, r = -0, g = 0, b = 0, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2gunsidelight2 = { lightType = 'point', @@ -13985,7 +9903,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 40, r = 1, g = 0.85, b = 0.3, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2gunsidelight3 = { lightType = 'point', @@ -13994,7 +9912,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 80, r = 1, g = 0.85, b = 0.3, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, chest1 = { lightType = 'point', @@ -14003,7 +9921,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, chest2 = { lightType = 'point', @@ -14012,7 +9930,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -14021,7 +9939,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcomboss'] = { @@ -14032,7 +9950,7 @@ local unitLights = { -- dirx = 0, diry = -0.25, dirz = 1, theta = 0.25999999, -- r = -1, g = 1, b = 1, a = 0.6, -- modelfactor = 0.1, specular = 0.5, scattering = 3.5, lensflare = 1, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, backpack = { lightType = 'point', @@ -14041,7 +9959,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.6, a = 0.3, modelfactor = 0.15, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder1 = { lightType = 'point', @@ -14050,7 +9968,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder2 = { lightType = 'point', @@ -14059,7 +9977,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hip1 = { lightType = 'point', @@ -14068,7 +9986,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hip2 = { lightType = 'point', @@ -14077,7 +9995,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.95, b = 0.55, a = 0.065, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -14086,7 +10004,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.33, colortime = 0, r = 1, g = 1, b = 0.33, a = 0.11, modelfactor = 0.2, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm1 = { lightType = 'point', @@ -14095,7 +10013,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.55, a = 0.14, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2 = { lightType = 'point', @@ -14104,7 +10022,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.85, b = 0.4, a = 0.3, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, chest1 = { lightType = 'point', @@ -14113,7 +10031,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, chest2 = { lightType = 'point', @@ -14122,7 +10040,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -14131,7 +10049,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -14143,7 +10061,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.75, g = 0.1, b = 1, a = 0.5, modelfact3r = 0.1, specular = 1.6, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, vortex2 = { lightType = 'point', @@ -14152,7 +10070,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.6, g = 0.057, b = 0.75, a = 0.2, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, leftarmgunflareglow = { lightType = 'point', @@ -14161,7 +10079,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.6, g = 0.057, b = 0.75, a = 0.7, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, backpackglow = { lightType = 'point', @@ -14170,7 +10088,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.6, g = 0.057, b = 0.75, a = 0.6, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 12, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, --TURBO weapon lights turbominigunspot = { --shows when TURBO minigun @@ -14180,7 +10098,7 @@ local unitLights = { dirx = 0.001, diry = -0.99, dirz = 0.001, theta = 0.36, r = 0.75, g = 0.1, b = 1, a = 0.9, modelfactor = 0.1, specular = 0.5, scattering = 3.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turbominigunlighthotpoint = { lightType = 'point', @@ -14189,7 +10107,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.6, g = 0.057, b = 0.75, a = 0.8, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 5, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, turboshotgunspot = { --shows when TURBO shotgun lightType = 'cone', @@ -14198,7 +10116,7 @@ local unitLights = { dirx = 0.001, diry = 0.001, dirz = 0.99, theta = 0.36, r = 0.75, g = 0.1, b = 1, a = 0.9, modelfactor = 0.1, specular = 0.5, scattering = 3.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turbomissilespot = { --shows when TURBO missile lightType = 'cone', @@ -14207,7 +10125,7 @@ local unitLights = { dirx = 0.001, diry = 0.001, dirz = 0.99, theta = 0.36, r = 0.75, g = 0.1, b = 1, a = 0.9, modelfactor = 0.1, specular = 0.5, scattering = 3.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turbomissilehotpoint = { lightType = 'point', @@ -14216,7 +10134,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.6, g = 0.057, b = 0.75, a = 0.8, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 5, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, turbolrpc1 = { lightType = 'point', @@ -14225,7 +10143,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.75, g = 0.1, b = 1, a = 0.9, modelfact3r = 0.1, specular = 1.6, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 1, selfshadowing = 1}, + lifetime = 0, sustain = 1, animtype = 1}, }, turbolrpc2 = { lightType = 'point', @@ -14234,7 +10152,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.75, g = 0.1, b = 1, a = 0.9, modelfact3r = 0.1, specular = 1.6, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, eaterbeamactivelight = { lightType = 'point', @@ -14243,7 +10161,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.75, g = 0.1, b = 1, a = 0.8, modelfact3r = 0.1, specular = 1.6, scattering = 1.5, lensflare = 5, - lifetime = 0, sustain = 1, selfshadowing = 0}, + lifetime = 0, sustain = 1, animtype = 0}, }, }, @@ -14255,7 +10173,7 @@ local unitLights = { dirx = 0, diry = -0.17, dirz = 1, theta = 0.25999999, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 0.5, scattering = 3.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, legcomradarblip = { lightType = 'point', @@ -14264,7 +10182,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.33, modelfactor = 0.1, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, legcomdgunlightred = { lightType = 'point', @@ -14273,7 +10191,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 40, r = 1, g = 0.25, b = 0.03, a = 1.6, modelfactor = 0.15, specular = 0.5, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, legcomnanolight1 = { lightType = 'point', @@ -14282,7 +10200,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.15, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, legcombackpacksglow = { lightType = 'point', @@ -14291,7 +10209,7 @@ local unitLights = { color2r = 0.4, color2g = 0.3, color2b = 0.05, colortime = 150, r = 1, g = 0.80, b = 0.25, a = 0.33, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, legcomlaser = { lightType = 'point', @@ -14300,7 +10218,7 @@ local unitLights = { color2r = 0.75, color2g = 0.6, color2b = 0, colortime = 45, r = 1, g = 0.85, b = 0, a = 0.14, modelfactor = 0.1, specular = 1, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, legcomnanolight = { lightType = 'point', @@ -14309,7 +10227,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcom'] = { @@ -14320,7 +10238,7 @@ local unitLights = { dirx = 0, diry = -0.17, dirz = 1, theta = 0.25999999, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 0.5, scattering = 3.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, -- buildlight1 = { -- this is the lightname -- lightType = 'cone', @@ -14329,7 +10247,7 @@ local unitLights = { -- dirx = 1, diry = 0, dirz = 0, theta = 0.99, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.15, specular = 0.3, scattering = 2, lensflare = 8, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- buildlight2 = { -- lightType = 'cone', @@ -14338,7 +10256,7 @@ local unitLights = { -- dirx = -1, diry = 0, dirz = 0, theta = 0.99, -- r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, -- modelfactor = 0.15, specular = 0.3, scattering = 2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, corbuildlight = { lightType = 'point', @@ -14347,7 +10265,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 1.2, g = 0.89, b = 0.1, a = 1, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cordgunlightred = { lightType = 'point', @@ -14356,7 +10274,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 40, r = 1, g = 0.085, b = 0.03, a = 1.6, modelfactor = 0.15, specular = 0.5, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cornanolight1 = { lightType = 'point', @@ -14365,7 +10283,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = 1, g = 0.85, b = 0.3, a = 2.8, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cornanolight2 = { lightType = 'point', @@ -14374,7 +10292,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = 1, g = 0.85, b = 0.3, a = 2.8, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cornanolight3 = { lightType = 'point', @@ -14383,7 +10301,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = 1, g = 0.85, b = 0.3, a = 2.8, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cornanolight1B = { lightType = 'point', @@ -14392,7 +10310,7 @@ local unitLights = { color2r = 1, color2g = 0.85, color2b = 0.3, colortime = 60, r = -0, g = 0, b = 0, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cornanolight2B = { lightType = 'point', @@ -14401,7 +10319,7 @@ local unitLights = { color2r = 1, color2g = 0.85, color2b = 0.3, colortime = 60, r = -0, g = 0, b = 0, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cornanolight3B = { lightType = 'point', @@ -14410,7 +10328,7 @@ local unitLights = { color2r = 1, color2g = 0.85, color2b = 0.3, colortime = 60, r = -0, g = 0, b = 0, a = 1.8, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack1 = { lightType = 'point', @@ -14419,7 +10337,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.75, a = 0.15, modelfactor = 0.15, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack2 = { lightType = 'point', @@ -14428,7 +10346,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.75, a = 0.15, modelfactor = 0.15, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpacksglow = { lightType = 'point', @@ -14437,7 +10355,7 @@ local unitLights = { color2r = 0.4, color2g = 0.3, color2b = 0.05, colortime = 150, r = 1, g = 0.80, b = 0.25, a = 0.33, modelfactor = 0.15, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder1 = { lightType = 'point', @@ -14446,7 +10364,7 @@ local unitLights = { color2r = 1, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 0.25, b = 0.25, a = 0.11, modelfactor = 0.15, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder2 = { lightType = 'point', @@ -14455,7 +10373,7 @@ local unitLights = { color2r = 1, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 0.25, b = 0.25, a = 0.11, modelfactor = 0.15, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, -- eyes = { -- lightType = 'point', @@ -14464,7 +10382,7 @@ local unitLights = { -- color2r = 1, color2g = 0.25, color2b = 0.25, colortime = 0, -- r = 1, g = 0.25, b = 0.25, a = 0.11, -- modelfactor = 0.4, specular = 0.8, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, eyerightbeam = { lightType = 'beam', @@ -14474,7 +10392,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 50, r = 1, g = 0.35, b = 0.20, a = 1.1, modelfactor = 0.2, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyeleftbeam = { lightType = 'beam', @@ -14484,7 +10402,7 @@ local unitLights = { --color2r = 1, color2g = 0.25, color2b = 0.25, colortime = 0, r = 1, g = 0.35, b = 0.20, a = 1.1, modelfactor = 0.2, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, --xmas_nose = { -- lightType = 'point', @@ -14493,7 +10411,7 @@ local unitLights = { -- color2r = 1, color2g = 0.25, color2b = 0.25, colortime = 0, -- r = 1, g = 0.25, b = 0.25, a = 0.12, -- modelfactor = 0.3, specular = 0.5, scattering = 10, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, --xmas_nose2 = { -- lightType = 'point', @@ -14502,7 +10420,7 @@ local unitLights = { -- color2r = 1, color2g = 0.25, color2b = 0.25, colortime = 0, -- r = 1, g = 0.25, b = 0.25, a = 0.11, -- modelfactor = 0.3, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, laser = { lightType = 'point', @@ -14511,7 +10429,7 @@ local unitLights = { color2r = 0.75, color2g = 0.6, color2b = 0, colortime = 45, r = 1, g = 0.85, b = 0, a = 0.14, modelfactor = 0.1, specular = 1, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -14520,7 +10438,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcomboss'] = { @@ -14531,7 +10449,7 @@ local unitLights = { -- dirx = 0, diry = -0.17, dirz = 1, theta = 0.25999999, -- r = -1, g = 1, b = 1, a = 0.6, -- modelfactor = 0.1, specular = 0.5, scattering = 3.5, lensflare = 1, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, backpack1 = { lightType = 'point', @@ -14540,7 +10458,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.75, a = 0.15, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack2 = { lightType = 'point', @@ -14549,7 +10467,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.75, a = 0.15, modelfactor = 0.15, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder1 = { lightType = 'point', @@ -14558,7 +10476,7 @@ local unitLights = { color2r = 1, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 0.25, b = 0.25, a = 0.11, modelfactor = 0.15, specular = 0.5, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulder2 = { lightType = 'point', @@ -14567,7 +10485,7 @@ local unitLights = { color2r = 1, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 0.25, b = 0.25, a = 0.11, modelfactor = 0.15, specular = 0.5, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -14576,7 +10494,7 @@ local unitLights = { color2r = 1, color2g = 0.25, color2b = 0.25, colortime = 0, r = 1, g = 0.25, b = 0.25, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -14585,7 +10503,7 @@ local unitLights = { color2r = 1, color2g = 0.25, color2b = 0.25, colortime = 0, r = 1, g = 0.25, b = 0.25, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, laser = { lightType = 'point', @@ -14594,7 +10512,7 @@ local unitLights = { color2r = 0.75, color2g = 0.6, color2b = 0, colortime = 45, r = 1, g = 0.85, b = 0, a = 0.14, modelfactor = 0.1, specular = 1, scattering = 1.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -14603,54 +10521,27 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armbull'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8.8, posy = 10.5, posz = 17, radius = 7, - color2r = 0.7, color2g = 0.7, color2b = 0.7, colortime = -1.5, - r = -1, g = 1, b = 1, a = 1.0, - modelfactor = 0.25, specular = 0.4, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8, posy = 11, posz = 19, radius = 10, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8.8, posy = 10.5, posz = 17, radius = 7, - color2r = 0.7, color2g = 0.7, color2b = 0.7, colortime = -1.5, - r = -1, g = 1, b = 1, a = 1.0, - modelfactor = 0.25, specular = 0.4, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlightleft = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 8, posy = 11, posz = 3, radius = 66, - dirx = 0, diry = -0.08, dirz = 1, theta = 0.32, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlightright = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = -8, posy = 11, posz = 3, radius = 66, - dirx = 0, diry = -0.08, dirz = 1, theta = 0.32, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - toplight = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 8, posz = 5, radius = 5.5, - color2r = 1, color2g = 1, color2b = 1, colortime = -2, - r = -1, g = 1, b = 1, a = 2.5, - modelfactor = 0.2, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8, posy = 11, posz = 19, radius = 10, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcroc'] = { @@ -14661,7 +10552,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armconsul'] = { @@ -14672,7 +10563,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', @@ -14681,7 +10572,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', @@ -14690,7 +10581,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side3 = { lightType = 'point', @@ -14699,7 +10590,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side4 = { lightType = 'point', @@ -14708,7 +10599,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight1 = { lightType = 'point', @@ -14717,7 +10608,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, nanolight2 = { lightType = 'point', @@ -14726,170 +10617,112 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['corcan'] = { footfront1 = { lightType = 'point', pieceName = 'lfoot', - lightConfig = { posx = 1, posy = -2.3, posz = 6, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 1, posy = -2.3, posz = 6, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, footfront2 = { lightType = 'point', pieceName = 'rfoot', - lightConfig = { posx = -1, posy = -2.3, posz = 6, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1, posy = -2.3, posz = 6, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, footback1 = { lightType = 'point', pieceName = 'lfoot', - lightConfig = { posx = 1, posy = -2.3, posz = -6, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 1, posy = -2.3, posz = -6, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, footback2 = { lightType = 'point', pieceName = 'rfoot', - lightConfig = { posx = -1, posy = -2.3, posz = -6, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamfootleft = { - lightType = 'point', - pieceName = 'lfoot', - lightConfig = { posx = 4, posy = 8.8, posz = 1, radius = 2, - dirx = 0, diry = 0, dirz = 1, theta = -1.7, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamfootright = { - lightType = 'point', - pieceName = 'rfoot', - lightConfig = { posx = -4, posy = 8.8, posz = 1, radius = 2, - dirx = 0, diry = 0, dirz = 1, theta = -1.7, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1, posy = -2.3, posz = -6, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, head1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -12.7, posy = 3.5, posz = 0, radius = 3, + lightConfig = { posx = -12.5, posy = 3.5, posz = 0, radius = 8, color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - r = -1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.9, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, head2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 12.7, posy = 3.5, posz = 0, radius = 3, + lightConfig = { posx = 12.5, posy = 3.5, posz = 0, radius = 8, color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - r = -1, g = 0.2, b = 0.2, a = 1, - modelfactor = 0.9, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, headback = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 0, posy = 7, posz = -11.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 0.4, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7.5, posz = -12, radius = 8, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 60, + r = 1, g = 1, b = 0.4, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corspy'] = { eyes1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 15, posz = 9, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 15, posz = 9, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormando'] = { - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 3, posz = 4, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 3, posz = 4, radius = 3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 15, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - flasheyes1 = { + eyes1 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 3, posz = 3, radius = 1.0, - dirx = 1, diry = 0, dirz = 0, theta = -3.9, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- flasheyes2 = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 3, posz = 3, radius = 1.0, - -- dirx = -1, diry = 0, dirz = 0, theta = -3.9, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 0.1, b = 0.1, a = 2.5, - -- modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - cloaklightred = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 9, posz = 0, radius = 9, - color2r = 0.6, color2g = 0, color2b = 0, colortime = 30, - r = 1, g = 0, b = 0, a = 0.9, - modelfactor = 0.5, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3, posz = 5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - greenblob = { + cloaklightred = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -8, posy = 10, posz = -3, radius = 5, - color2r = 0, color2g = 0.4, color2b = 0, colortime = 60, - r = 0, g = 1, b = 0, a = 0.95, - modelfactor = 0.6, specular = 0.6, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7, posz = 0, radius = 11, + color2r = 0, color2g = 0, color2b = 1, colortime = 0, + r = 1, g = 0, b = 0, a = 0.5, + modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, body = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 2, posz = 7, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = 8, radius = 17, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 60, + r = 1, g = 1, b = 0.4, a = 0.13, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormandot4'] = { @@ -14900,7 +10733,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, cloaklightred = { lightType = 'point', @@ -14909,7 +10742,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0, b = 0, a = 0.5, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, body = { lightType = 'point', @@ -14918,7 +10751,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 60, r = 1, g = 1, b = 0.4, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lnanoflareglow = { lightType = 'point', @@ -14927,7 +10760,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 60, r = 0.7, g = 0.7, b = 1, a = 0.7, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corphantom'] = { @@ -14938,839 +10771,348 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.12, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corparrow'] = { - eyesfront = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.5, posy = 13.8, posz = 24.8, radius = 2, - pos2x = 2.5, pos2y = 13.8, pos2z = 24.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 14, posz = 26, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesright = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.3, posy = 13.8, posz = 24.8, radius = 2, - pos2x = -2.3, pos2y = 13.8, pos2z = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 14, posz = 21, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesleft = { - lightType = 'beam', + eyes3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.3, posy = 13.8, posz = 24.8, radius = 2, - pos2x = 2.3, pos2y = 13.8, pos2z = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightsourceright = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -7.7, posy = 3, posz = 4.5, radius = 1.4, - pos2x = -7.71, pos2y = 2, pos2z = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightsourceleft = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 7.7, posy = 3, posz = 4.5, radius = 1.4, - pos2x = 7.71, pos2y = 2, pos2z = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 14, posz = 21, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlightl = { -- this is the lightname - lightType = 'cone', - pieceName = 'turret', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -7.7, posy = 2.5, posz = 3, radius = 55, colortime = -2, - dirx = -0.4, diry = -0.3, dirz = 1, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightr = { -- this is the lightname - lightType = 'cone', - pieceName = 'turret', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 7.7, posy = 2.5, posz = 3, radius = 55, colortime = -2, - dirx = 0.4, diry = -0.3, dirz = 1, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- barrelglow = { - -- lightType = 'point', - -- pieceName = 'barrel', - -- lightConfig = { posx = 0, posy = 0, posz = 18.5, radius = 1.8, - -- color2r = 0.7, color2g = 0.35, color2b = 0.05, colortime = 60, - -- r = 1.2, g = 0.80, b = 0.12, a = 1.5, - -- modelfactor = 0.2, specular = 0.1, scattering = 0.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 14, posz = 26, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4, posy = 14, posz = 21, radius = 9, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4, posy = 14, posz = 21, radius = 9, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['cormart'] = { rackbl1 = { lightType = 'point', pieceName = 'trackbl', - lightConfig = { posx = 6, posy = -3.5, posz = -9.5, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = -3.5, posz = -9.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, rackbl2 = { lightType = 'point', pieceName = 'trackbl', - lightConfig = { posx = 6, posy = -2.3, posz = -6.7, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = -2.3, posz = -6.7, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, rackbl3 = { lightType = 'point', pieceName = 'trackbl', - lightConfig = { posx = 6, posy = -1.1, posz = -3.9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = -1.1, posz = -3.9, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, trackfl1 = { lightType = 'point', pieceName = 'trackfl', - lightConfig = { posx = 6, posy = -3.5, posz = 9.5, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = -3.5, posz = 9.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, trackfl2 = { lightType = 'point', pieceName = 'trackfl', - lightConfig = { posx = 6, posy = -2.3, posz = 6.7, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = -2.3, posz = 6.7, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, trackfl3 = { lightType = 'point', pieceName = 'trackfl', - lightConfig = { posx = 6, posy = -1.1, posz = 3.9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = -1.1, posz = 3.9, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, rackbr1 = { lightType = 'point', pieceName = 'trackbr', - lightConfig = { posx = -6, posy = -3.5, posz = -9.5, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = -3.5, posz = -9.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, rackbr2 = { lightType = 'point', pieceName = 'trackbr', - lightConfig = { posx = -6, posy = -2.3, posz = -6.7, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = -2.3, posz = -6.7, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, rackbr3 = { lightType = 'point', pieceName = 'trackbr', - lightConfig = { posx = -6, posy = -1.1, posz = -3.9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = -1.1, posz = -3.9, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, trackfr1 = { lightType = 'point', pieceName = 'trackfr', - lightConfig = { posx = -6, posy = -3.5, posz = 9.5, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = -3.5, posz = 9.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, trackfr2 = { lightType = 'point', pieceName = 'trackfr', - lightConfig = { posx = -6, posy = -2.3, posz = 6.7, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = -2.3, posz = 6.7, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, trackfr3 = { lightType = 'point', pieceName = 'trackfr', - lightConfig = { posx = -6, posy = -1.1, posz = 3.9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.35, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = -1.1, posz = 3.9, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesfront = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.5, posy = 10.5, posz = 22, radius = 2, - pos2x = 2.5, pos2y = 10.5, pos2z = 22, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.05, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 10, posz = 23, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesright = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.8, posy = 10.5, posz = 22, radius = 2, - pos2x = -3.9, pos2y = 10.5, pos2z = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.05, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 10, posz = 17.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesleft = { - lightType = 'beam', + eyes3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.8, posy = 10.5, posz = 22, radius = 2, - pos2x = 3.9, pos2y = 10.5, pos2z = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.05, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 10, posz = 17.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 10, posz = 23, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4, posy = 10, posz = 17.5, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4, posy = 10, posz = 17.5, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, sleeve = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = -2.9, posy = -1.2, posz = -1, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.8, + lightConfig = { posx = -2.9, posy = -1.2, posz = -1, radius = 7, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redlightside = { -- this is the lightname - lightType = 'cone', - pieceName = 'sleeve', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -2.9, posy = -1.2, posz = -5, radius = 20, colortime = -2, - dirx = 0, diry = 0, dirz = 1, theta = 0.20, - r = 1, g = 0.5, b = 0.5, a = 1.9, - modelfactor = 0.5, specular = 0.3, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- teamlauncherleft = { - -- lightType = 'point', - -- pieceName = 'sleeve', - -- lightConfig = { posx = 0, posy = 0.9, posz = -30, radius = 1.8, - -- dirx = 0, diry = 1, dirz = 0, theta = -1.5, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = -1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 12, posz = 20, radius = 40, colortime = -2, - dirx = 0, diry = -0.95, dirz = 0.8, theta = 0.9, - r = 1, g = 1, b = 0.89, a = 0.25, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corban'] = { base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -17.8, posy = 14, posz = 5.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - base1B = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13.8, posy = 14, posz = 5.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16, posy = 16, posz = 5.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 17.8, posy = 14, posz = 5.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - base2B = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13.8, posy = 14, posz = 5.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - base3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -17.8, posy = 14, posz = -12.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - base3B = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13.8, posy = 14, posz = -12.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - base4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 17.8, posy = 14, posz = -12.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - base4B = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13.8, posy = 14, posz = -12.5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- redglowlight = { - -- lightType = 'point', - -- pieceName = 'sleeve', - -- lightConfig = { posx = 4, posy = 4.3, posz = 6.7, radius = 4, - -- color2r = 0.2, color2g = 0.01, color2b = 0.01, colortime = 120, - -- r = 1, g = 0, b = 0, a = 1, - -- modelfactor = 0.2, specular = 0.1, scattering = 0.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- teamlauncherleft = { - -- lightType = 'point', - -- pieceName = 'sleeve', - -- lightConfig = { posx = 4, posy = 4, posz = 7, radius = 3.8, - -- dirx = 0, diry = 0, dirz = 0.5, theta = -2.5, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 60, - -- r = 1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.3, scattering = 8.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- teamlauncherright = { - -- lightType = 'point', - -- pieceName = 'sleeve', - -- lightConfig = { posx = -4, posy = 4, posz = 7, radius = 3.8, - -- dirx = 0, diry = 0, dirz = 0.5, theta = -2.5, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 60, - -- r = 1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.3, scattering = 8.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - redglowl = { - lightType = 'beam', - pieceName = 'sleeve', - lightConfig = { posx = 4, posy = 4.3, posz = 6.7, radius = 4, - pos2x = 4, pos2y = 4.3, pos2z = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0, b = 0, a = 0.7, - modelfactor = 0.2, specular = 0.1, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redglowr = { - lightType = 'beam', - pieceName = 'sleeve', - lightConfig = { posx = -4, posy = 4.3, posz = 0, radius = 4, - pos2x = -4, pos2y = 4.3, pos2z = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0, b = 0, a = 0.7, - modelfactor = 0.2, specular = 0.1, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashl = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 2.7, posy = 9.5, posz = -6.6, radius = 1, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.8, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashr = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = -2.9, posy = 9.5, posz = -6.6, radius = 1, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.8, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = -1, posz = 0, radius = 180, colortime = -1.5, - dirx = 0, diry = 0.1, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 16, posy = 16, posz = 5.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['correap'] = { - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 9, posz = 1, radius = 175, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.4, - r = 1, g = 1, b = 0.89, a = 0.35, colortime = -5, - modelfactor = -0.9, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 16, posz = 12.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = 16, posz = 12.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12, posy = 16, posz = 12.5, radius = 8, - color2r =0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - glowright = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -6, posy = 1, posz = 0, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.2, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12, posy = 16, posz = 12.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - glowleft = { + front = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 6, posy = 1, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.2, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backbeam = { - lightType = 'beam', pieceName = 'base', - lightConfig = { posx = -3.2, posy = 7.8, posz = -25, radius = 4, - pos2x = 3.2, pos2y = 7.8, pos2z = -25, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.1, b = 0.1, a = 1.9, - modelfactor = 0.5, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- frontbeam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 13, posz = 14, radius = 5, - -- pos2x = 0, pos2y = 9, pos2z = 19, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 30, - -- r = -1, g = 0.5, b = 0.5, a = 1.0, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- flashfront1 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 5, posy = 9.5, posz = -3, radius = 2.2, - -- dirx = 0, diry = 0, dirz = 1, theta = -1.5, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = -1, g = 0.1, b = 0.1, a = 2.5, - -- modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - flashfrontlow1 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 5.5, posy = 8, posz = 20, radius = 3.2, - dirx = 0, diry = 0, dirz = 1, theta = -2.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 1.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flashfrontlow2 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -5.5, posy = 8, posz = 20, radius = 3.2, - dirx = 0, diry = 0, dirz = 1, theta = -2.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 1.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashback = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 6, posy = 5, posz = -9, radius = 2.2, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7, posz = -23, radius = 20, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamflashback2 = { + back = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -6, posy = 5, posz = -9, radius = 2.2, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 0, posy = 11, posz = 19, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.6, b = 0.6, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- front = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 11, posz = 17, radius = 6, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.6, b = 0.6, a = 0.6, - -- modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corhrk'] = { eyes1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -2.7, posy = 13, posz = 15, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.85, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3, posy = 13, posz = 14, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 2.7, posy = 13, posz = 15, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.85, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamglowl = { - lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = 11.3, posy = 0, posz = 12, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamglowr = { - lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = -11.3, posy = 0, posz = 12, radius = 5, - color2r = -100, color2g = 0, color2b = 0, colortime = 120, - r = 0, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redmid = { - lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = -0.1, posy = 0.5, posz = 10.5, radius = 1.3, - color2r = -4, color2g = -4, color2b = -4, colortime = 15, - r = 1.5, g = 0, b = 0, a = 2.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redmid2 = { - lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = -2.9, posy = 0.5, posz = 10.5, radius = 1.3, - color2r = -4, color2g = -4, color2b = -4, colortime = 25, - r = 1, g = 0, b = 0, a = 2.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redmid3 = { - lightType = 'point', - pieceName = 'launcher', - lightConfig = { posx = 2.6, posy = 0.5, posz = 10.5, radius = 1.3, - color2r = -4, color2g = -4, color2b = -4, colortime = 25, - r = 1, g = 0, b = 0, a = 2.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3, posy = 13, posz = 14, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corak'] = { eyes1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -2.9, posy = 8, posz = 8, radius = 4.5, - dirx = 0, diry = 0, dirz = -0.33, theta = -1.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.2, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.9, posy = 8.4, posz = 8.9, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 2.9, posy = 8, posz = 8, radius = 4.5, - dirx = 0, diry = 0, dirz = -0.33, theta = -1.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.2, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'torso', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 3, posz = 2, radius = 50, - dirx = 0, diry = 0.03, dirz = 1, theta = 0.29, - r = 1, g = 1, b = 0.89, a = 0.44, - modelfactor = -1.5, specular = -0.3, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightglow = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 2, posz = 7.2, radius = 3, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 60, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teambackpack = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 9.5, posz = -8, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 1, b = 1, a = 2.5, - modelfactor = 0.2, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2.9, posy = 8.4, posz = 8.9, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- headlightglowold = { -- this is the lightname - -- lightType = 'cone', - -- pieceName = 'torso', -- invalid ones will attach to the worldpos of the unit - -- lightConfig = { posx = 0, posy = 3, posz = 7.5, radius = 4, - -- dirx = 0.01, diry = 0, dirz = -1, theta = 0.75, - -- r = 1, g = 1, b = 0.89, a = 0.4, - -- modelfactor = 0.5, specular = 1.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyesglow = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 8.4, posz = 10.5, radius = 12, - -- color2r = 0.2, color2g = 0.02, color2b = 0.02, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.2, - -- modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 3, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes1old = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = -2.9, posy = 8.4, posz = 8.9, radius = 16, - -- color2r = 0.2, color2g = 0.02, color2b = 0.02, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.1, - -- modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 3, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2old = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 2.9, posy = 8.4, posz = 8.9, radius = 16, - -- color2r = 0.2, color2g = 0.02, color2b = 0.02, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.1, - -- modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 3, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corgator'] = { - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'justattachtobase', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 10, posz = 3, radius = 70, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.5, - r = 1, g = 1, b = 0.89, a = 0.40, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -7.5, posy = 5.5, posz = 5, radius = 5, - color2r = 0.15, color2g = 0.15, color2b = 0.15, colortime = 30, - r = 1, g = 0.15, b = 0.15, a = 0.8, - modelfactor = 0.5, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7.5, posy = 6, posz = 5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 7.5, posy = 5.5, posz = 5, radius = 5, - color2r = 0.15, color2g = 0.15, color2b = 0.15, colortime = 30, - r = 1, g = 0.15, b = 0.15, a = 0.8, - modelfactor = 0.5, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7.5, posy = 6, posz = 5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -7.5, posy = 5.5, posz = -5, radius = 5, - color2r = 0.15, color2g = 0.15, color2b = 0.15, colortime = 30, - r = 1, g = 0.15, b = 0.15, a = 0.8, - modelfactor = 0.5, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7.5, posy = 6, posz = -5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 7.5, posy = 5.5, posz = -5, radius = 5, - color2r = 0.15, color2g = 0.15, color2b = 0.15, colortime = 30, - r = 1, g = 0.15, b = 0.15, a = 0.8, - modelfactor = 0.5, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7.5, posy = 6, posz = -5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corca'] = { nanolight = { lightType = 'point', pieceName = 'nano', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 9, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 12, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + r = -1, g = 1, b = 1, a = 0.25, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0 }, }, eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6.8, posz = 16.5, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.45, specular = 0.1, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -5.8, posy = 4.7, posz = 13.3, radius = 5, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 5.8, posy = 4.7, posz = 13.3, radius = 5, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7.5, posz = 17.5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - passivethruster = { + thruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6, posz = -15.7, radius = 4.8, - color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, - r = 0.88, g = 0.83, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6, posz = -15.7, radius = 13, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.15, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -15779,7 +11121,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -15788,101 +11130,92 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- thrustyellow = { - -- lightType = 'point', - -- pieceName = 'thrust', - -- lightConfig = { posx = 0, posy = 0, posz = -3, radius = 14, - -- color2r = 0.80, color2g = 0.69, color2b = 0.15, - -- r = 1.1, g = 0.8, b = 0.2, a = 0.5, colortime = 14, - -- modelfactor = 0.4, specular = 0.1, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - thrustblue = { + thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 14, - color2r = 0.5, color2g = 0.7, color2b = 0.9, - r = 0.8, g = 0.9, b = 1.1, a = 0.45, colortime = 14, - modelfactor = 0.4, specular = 0.1, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 0.45, g = 0.7, b = 1, a = 0.35, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corfink'] = { thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3, posy = 2, posz = -18, radius = 3.1, - color2r = 1.1, color2g = 0.92, color2b = 0.66, colortime = 4, - r = 0.88, g = 0.80, b = 0.15, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3, posy = 2, posz = -19, radius = 9, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, + r = 0.88, g = 0.83, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3, posy = 2, posz = -18, radius = 3.1, - color2r = 1.1, color2g = 0.92, color2b = 0.66, colortime = 4, - r = 0.88, g = 0.80, b = 0.15, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3, posy = 2, posz = -19, radius = 9, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, + r = 0.88, g = 0.83, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', - lightConfig = { posx = 0, posy = 0, posz = -2, radius = 12, - color2r = 0.4, color2g = 0.3, color2b = 0.02, colortime = 14, - r = 1.3, g = 0.75, b = 0.2, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.8, b = 0.5, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 0, posz = -2, radius = 12, - color2r = 0.4, color2g = 0.3, color2b = 0.02, colortime = 14, - r = 1.3, g = 0.75, b = 0.2, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.8, b = 0.5, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsb'] = { thrustera = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -16, posy = 2.8, posz = -23, radius = 5, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16, posy = 2.8, posz = -24, radius = 9, + color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 6, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusterb = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 16, posy = 2.8, posz = -23, radius = 5, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 16, posy = 2.8, posz = -24, radius = 9, + color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 6, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', - lightConfig = { posx = 0, posy = 0, posz = -4, radius = 17, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.6, g = 1, b = 0.6, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 0, posz = -4, radius = 17, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.6, g = 1, b = 0.6, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -15891,7 +11224,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cords'] = { @@ -15902,7 +11235,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -15911,7 +11244,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -15920,7 +11253,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', @@ -15929,7 +11262,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backeyes1 = { lightType = 'point', @@ -15938,7 +11271,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backeyes2 = { lightType = 'point', @@ -15947,7 +11280,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', @@ -15956,7 +11289,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', @@ -15965,7 +11298,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel3 = { lightType = 'point', @@ -15974,7 +11307,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel4 = { lightType = 'point', @@ -15983,7 +11316,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb1l_eyes1 = { lightType = 'point', @@ -15992,7 +11325,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb1l_eyes2 = { lightType = 'point', @@ -16001,7 +11334,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb1r_eyes1 = { lightType = 'point', @@ -16010,7 +11343,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb1r_eyes2 = { lightType = 'point', @@ -16019,7 +11352,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb2l_eyes1 = { lightType = 'point', @@ -16028,7 +11361,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb2l_eyes2 = { lightType = 'point', @@ -16037,7 +11370,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb2r_eyes1 = { lightType = 'point', @@ -16046,7 +11379,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb2r_eyes2 = { lightType = 'point', @@ -16055,7 +11388,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb3l_eyes1 = { lightType = 'point', @@ -16064,7 +11397,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb3l_eyes2 = { lightType = 'point', @@ -16073,7 +11406,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb3r_eyes1 = { lightType = 'point', @@ -16082,7 +11415,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb3r_eyes2 = { lightType = 'point', @@ -16091,45 +11424,45 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsfig'] = { thruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4, posz = -15, radius = 5, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = -15, radius = 9, + color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 6, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 17, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.6, g = 1, b = 0.6, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6.3, posz = 3.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.65, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5.5, posz = 4.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 8.5, posz = -4, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.65, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8.5, posz = -4, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corseap'] = { @@ -16137,104 +11470,104 @@ local unitLights = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 0, posy = 5, posz = -14, radius = 12, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 6, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.6, g = 1, b = 0.6, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6, posz = 19, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.65, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6, posz = 19, radius = 15, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 13, posz = 9, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.65, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13, posz = 9, radius = 13, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corhunt'] = { thruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 5, posz = -19, radius = 5, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5, posz = -20, radius = 9, + color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 6, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.6, g = 1, b = 0.6, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6.5, posz = 21, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.65, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6.5, posz = 21, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcut'] = { thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -7.6, posy = 3.8, posz = -22.5, radius = 5, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7.6, posy = 3.8, posz = -22.5, radius = 9, + color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 6, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 7.6, posy = 3.8, posz = -22.5, radius = 5, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7.6, posy = 3.8, posz = -22.5, radius = 9, + color2r = 0.8, color2g = 0.8, color2b = 0.1, colortime = 5, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', - lightConfig = { posx = 0, posy = 0, posz = -4, radius = 17, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.6, g = 1, b = 0.6, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 0, posz = -4, radius = 17, - color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.6, g = 1, b = 0.6, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -16243,7 +11576,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -16252,7 +11585,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -16261,7 +11594,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corhurc'] = { @@ -16271,8 +11604,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 7.8, posz = -25, radius = 20, color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, r = 0.88, g = 0.83, b = 0.2, a = 0.16, - modelfactor = 0.3, specular = 0.4, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -16281,7 +11614,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 7, r = 0.88, g = 0.83, b = 0.2, a = 0.13, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster3 = { lightType = 'point', @@ -16290,7 +11623,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.13, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'point', @@ -16298,8 +11631,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'point', @@ -16307,8 +11640,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', @@ -16316,156 +11649,120 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 40, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.2, posy = 12.8, posz = 31.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = 12.8, posz = 32, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.2, posy = 12.8, posz = 31.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = 12.8, posz = 32, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corshad'] = { thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = -22, radius = 9, - color2r = 1.1, color2g = 0.92, color2b = 0.66, colortime = 5, - r = 0.95, g = 0.83, b = 0.2, a = 0.4, - modelfactor = 0.4, specular = 0.15, scattering = 0.5, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7, posz = -22, radius = 16, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, + r = 0.88, g = 0.83, b = 0.2, a = 0.16, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- thruster2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -3.3, posy = 3, posz = -21, radius = 11, - -- color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 7, - -- r = 0.88, g = 0.83, b = 0.2, a = 0.11, - -- modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thruster3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 3.3, posy = 3, posz = -21, radius = 11, - -- color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, - -- r = 0.88, g = 0.83, b = 0.2, a = 0.11, - -- modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thrust1 = { - -- lightType = 'point', - -- pieceName = 'thrust1', - -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 16, - -- color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = 2, - -- r = 1.2, g = 0.7, b = 0.3, a = 0.8, - -- modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 15, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thrust2 = { - -- lightType = 'point', - -- pieceName = 'thrust2', - -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 23, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 0.7, b = 0.3, a = 0.3, - -- modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - thrustb = { + thruster2 = { lightType = 'point', - pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 0, posz = -1, radius = 18, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = 2, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.15, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -3.3, posy = 3, posz = -21, radius = 11, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 7, + r = 0.88, g = 0.83, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyes1 = { + thruster3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = 21, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.3, posy = 3, posz = -21, radius = 11, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrust1 = { + lightType = 'point', + pieceName = 'thrust1', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 23, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.7, b = 0.3, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrust2 = { + lightType = 'point', + pieceName = 'thrust2', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 23, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.7, b = 0.3, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - wingleft = { + thrustb = { + lightType = 'point', + pieceName = 'thrustb', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.7, b = 0.3, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 32.8, posy = 6.2, posz = -11.5, radius = 6, - color2r = -15, color2g = -15, color2b = -15, colortime = 55, - r = 1.5, g = 0.2, b = 0.2, a = 1.0, - modelfactor = 0.8, specular = 0.4, scattering = 0.45, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 6, posz = 23.5, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - wingright = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -32.8, posy = 6.2, posz = -11.5, radius = 6, - color2r = -15, color2g = -15, color2b = -15, colortime = 55, - r = 0.2, g = 1.5, b = 0.2, a = 1.0, - modelfactor = 0.8, specular = 0.4, scattering = 0.45, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 6, posz = 23.5, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4, posy = 6, posz = 23.5, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['cortitan'] = { eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7.5, posz = 26, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4, posy = 7.5, posz = 26, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.6, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - depthchargeflashl = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 19.5, posy = 5.8, posz = 15.0, radius = 2.1, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 7.5, posz = 26, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - depthchargeflashlr = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -19.5, posy = 5.8, posz = 15.0, radius = 2.1, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 7.5, posz = 26, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta1 = { lightType = 'point', @@ -16474,7 +11771,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta2 = { lightType = 'point', @@ -16483,7 +11780,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb1 = { lightType = 'point', @@ -16492,7 +11789,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb2 = { lightType = 'point', @@ -16501,7 +11798,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coraca'] = { @@ -16512,25 +11809,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - fronttop1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -6.2, posy = 8.7, posz = 17.3, radius = 5, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 6.2, posy = 8.7, posz = 17.3, radius = 5, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0 }, }, thruster = { lightType = 'point', @@ -16539,7 +11818,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.18, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -16548,7 +11827,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -16557,7 +11836,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', @@ -16566,72 +11845,63 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfig'] = { front1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 4.5, posy = 4, posz = 12.5, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.75, - modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front2 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -4.5, posy = 4, posz = 12.5, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.75, - modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5, posz = 15, radius = 15, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.04, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -7, posy = 4, posz = -13, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, + lightConfig = { posx = -10, posy = 5, posz = -13, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 7, posy = 4, posz = -13, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, + lightConfig = { posx = 10, posy = 5, posz = -13, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backtop1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -3, posy = 6, posz = -8.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.6, + lightConfig = { posx = -3, posy = 6.5, posz = -8.5, radius = 8, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backtop2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 3, posy = 6, posz = -8.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.6, + lightConfig = { posx = 3, posy = 6.5, posz = -8.5, radius = 8, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 14, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 10, - r = 1.1, g = 0.8, b = 0.5, a = 0.8, - modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.75, b = 0.2, a = 0.35, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armca'] = { @@ -16642,7 +11912,7 @@ local unitLights = { -- dirx = 0, diry = 0, dirz = -1, theta = 0.30000001, -- r = -1, g = 0, b = 0, a = 1, -- modelfactor = 0, specular = 1, scattering = 3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, buildlight = { lightType = 'point', @@ -16651,16 +11921,16 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 22, r = 1.2, g = 0.85, b = 0.1, a = 0.6, modelfactor = 0.15, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'nano', - lightConfig = { posx = 0, posy = 0, posz = -8, radius = 16, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.5, + r = -1, g = 1, b = 1, a = 0.15, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, -- front1 = { -- lightType = 'point', @@ -16669,7 +11939,7 @@ local unitLights = { -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.045, -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- front2 = { -- lightType = 'point', @@ -16678,7 +11948,7 @@ local unitLights = { -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.04, -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- front3 = { -- lightType = 'point', @@ -16687,70 +11957,70 @@ local unitLights = { -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.04, -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, back1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8, posy = 7, posz = -12, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, + lightConfig = { posx = -10, posy = 5, posz = -13, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8, posy = 7, posz = -12, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, + lightConfig = { posx = 10, posy = 5, posz = -13, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backtop1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4, posy = 8.5, posz = -6.5, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, + lightConfig = { posx = -4.5, posy = 8.5, posz = -7, radius = 8, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backtop2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4, posy = 8.5, posz = -6.5, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -4, posy = 8.5, posz = 6.5, radius = 4, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 4, posy = 8.5, posz = 6.5, radius = 4, - color2r = -10, color2g = -10, color2b = -10, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, + lightConfig = { posx = 4.45, posy = 8.5, posz = -7, radius = 8, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, + -- fronttop1 = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = -4.5, posy = 8.5, posz = 7, radius = 8, + -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, + -- r = 1, g = 1, b = 0.2, a = 0.06, + -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + -- lifetime = 0, sustain = 0, animtype = 0}, + -- }, + -- fronttop2 = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = 4.45, posy = 8.5, posz = 7, radius = 8, + -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, + -- r = 1, g = 1, b = 0.2, a = 0.06, + -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + -- lifetime = 0, sustain = 0, animtype = 0}, + -- }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 1, posz = -3, radius = 16, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 28, - r = 1.1, g = 0.8, b = 0.5, a = 0.8, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.75, b = 0.2, a = 0.28, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armpb'] = { @@ -16761,7 +12031,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turrettopside1 = { lightType = 'point', @@ -16770,7 +12040,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turrettopside2 = { lightType = 'point', @@ -16779,7 +12049,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turretfront = { lightType = 'point', @@ -16788,7 +12058,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turretback = { lightType = 'point', @@ -16797,7 +12067,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -16806,7 +12076,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -16815,7 +12085,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -16824,7 +12094,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -16833,7 +12103,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, baseside1 = { lightType = 'point', @@ -16842,7 +12112,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, baseside2 = { lightType = 'point', @@ -16851,7 +12121,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armtide'] = { @@ -16862,7 +12132,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -16871,7 +12141,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -16880,263 +12150,182 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armthund'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = 19, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = 19, radius = 15, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 2.2, posz = -8, radius = 5, - color2r = 1, color2g = 1, color2b = 1, colortime = -1, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = 2.2, posz = -8, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12, posy = 2.2, posz = -8, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12, posy = 2.2, posz = -8, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- engine1 = { - -- lightType = 'point', - -- pieceName = 'engines', - -- lightConfig = { posx = -26, posy = -6, posz = 0, radius = 3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 0.5, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- engine2 = { - -- lightType = 'point', - -- pieceName = 'engines', - -- lightConfig = { posx = 26, posy = -6, posz = 0, radius = 3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 0.5, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- engine3 = { - -- lightType = 'point', - -- pieceName = 'engines', - -- lightConfig = { posx = -8, posy = -6, posz = 0, radius = 3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 0.5, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- engine4 = { - -- lightType = 'point', - -- pieceName = 'engines', - -- lightConfig = { posx = 8, posy = -6, posz = 0, radius = 3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 0.5, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - thrustermain = { + engine1 = { lightType = 'point', - pieceName = 'enginec', - lightConfig = { posx = 0, posy = -6, posz = 0, radius = 10, - color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, - r = 0.93, g = 0.81, b = 0.2, a = 0.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'engines', + lightConfig = { posx = -26, posy = -6, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- thrusteractive = { - -- lightType = 'cone', - -- pieceName = 'thrustc', - -- lightConfig = { posx = 0, posy = 0, posz = -35, radius = 40, colortime = -2, - -- dirx = 0, diry = 0, dirz = 1, theta = 0.2, - -- r = 1, g = 0.8, b = 0.33, a = 1.8, - -- modelfactor = 0, specular = 0.5, scattering = 1.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - thrustleft = { + engine2 = { lightType = 'point', - pieceName = 'thrust1', - lightConfig = { posx = -3, posy = 0, posz = -5, radius = 14, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 30, - r = 1, g = 0.8, b = 0.5, a = 0.7, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'engines', + lightConfig = { posx = 26, posy = -6, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- thrustright = { - -- lightType = 'point', - -- pieceName = 'thrust3', - -- lightConfig = { posx = -3, posy = 0, posz = -5, radius = 14, - -- color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 30, - -- r = 1, g = 0.8, b = 0.5, a = 0.7, - -- modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thrustleft = { - -- lightType = 'point', - -- pieceName = 'thrust1', - -- lightConfig = { posx = -3, posy = 0, posz = -5, radius = 14, - -- color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 30, - -- r = 1, g = 0.8, b = 0.5, a = 0.7, - -- modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - thrustmain = { + engine3 = { + lightType = 'point', + pieceName = 'engines', + lightConfig = { posx = -8, posy = -6, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + engine4 = { lightType = 'point', + pieceName = 'engines', + lightConfig = { posx = 8, posy = -6, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thruster = { + lightType = 'point', + pieceName = 'enginec', + lightConfig = { posx = 0, posy = -6, posz = 0, radius = 14, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, + r = 0.88, g = 0.83, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrusteractive = { + lightType = 'cone', pieceName = 'thrustc', - lightConfig = { posx = 0, posy = 0, posz = -7, radius = 19, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 30, - r = 1, g = 0.8, b = 0.5, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 50, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.3, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { - lightType = 'point', + lightType = 'cone', pieceName = 'thrust1', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 10, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 30, - r = 1, g = 0.8, b = 0.5, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 40, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.2, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { - lightType = 'point', + lightType = 'cone', pieceName = 'thrust2', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 10, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 28, - r = 1, g = 0.8, b = 0.5, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 40, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.2, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { - lightType = 'point', + lightType = 'cone', pieceName = 'thrust3', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 10, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 29, - r = 1, g = 0.8, b = 0.5, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 40, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.2, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { - lightType = 'point', + lightType = 'cone', pieceName = 'thrust4', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 10, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 27, - r = 1, g = 0.8, b = 0.5, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 40, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.2, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- thrust1 = { - -- lightType = 'cone', - -- pieceName = 'thrust1', - -- lightConfig = { posx = 0, posy = 0, posz = -2, radius = 40, - -- dirx = 0, diry = 0, dirz = -1, theta = 0.2, - -- r = 1, g = 0.8, b = 0.33, a = 0.8, - -- modelfactor = 0, specular = 1, scattering = 1.5, lensflare = 1, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thrust2 = { - -- lightType = 'cone', - -- pieceName = 'thrust2', - -- lightConfig = { posx = 0, posy = 0, posz = -2, radius = 40, - -- dirx = 0, diry = 0, dirz = -1, theta = 0.2, - -- r = 1, g = 0.8, b = 0.33, a = 0.8, - -- modelfactor = 0, specular = 1, scattering = 1.5, lensflare = 1, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thrust3 = { - -- lightType = 'cone', - -- pieceName = 'thrust3', - -- lightConfig = { posx = 0, posy = 0, posz = -2, radius = 40, - -- dirx = 0, diry = 0, dirz = -1, theta = 0.2, - -- r = 1, g = 0.8, b = 0.33, a = 0.8, - -- modelfactor = 0, specular = 1, scattering = 1.5, lensflare = 1, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thrust4 = { - -- lightType = 'cone', - -- pieceName = 'thrust4', - -- lightConfig = { posx = 0, posy = 0, posz = -2, radius = 40, - -- dirx = 0, diry = 0, dirz = -1, theta = 0.2, - -- r = 1, g = 0.8, b = 0.33, a = 0.8, - -- modelfactor = 0, specular = 1, scattering = 1.5, lensflare = 1, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armstil'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4, posy = 9, posz = 27, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 4, posy = 9, posz = 27, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 9, posz = 27, radius = 15, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fan = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 9, posz = 6, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 9, posz = 6, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -14, posy = 9, posz = 2, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14, posy = 9, posz = 2, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 14, posy = 9, posz = 2, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14, posy = 9, posz = 2, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, midback1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -14, posy = 9, posz = -11, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14, posy = 9, posz = -11, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, midback2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 14, posy = 9, posz = -11, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14, posy = 9, posz = -11, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', @@ -17145,7 +12334,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', @@ -17154,25 +12343,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - emplight21 = { - lightType = 'point', - pieceName = 'wingr', - lightConfig = { posx = 0, posy = 17, posz = -2, radius = 12, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, - r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 0.7, lensflare = 15, - lifetime = 0, selfshadowing = 0}, - }, - emplight2 = { - lightType = 'point', - pieceName = 'wingl', - lightConfig = { posx = 0, posy = 17, posz = -2, radius = 12, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, - r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 0.7, lensflare = 15, - lifetime = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armhawk'] = { @@ -17183,7 +12354,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, fan = { lightType = 'point', @@ -17192,7 +12363,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', @@ -17201,7 +12372,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -17210,7 +12381,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', @@ -17219,110 +12390,101 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armpeep'] = { front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = 15.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.75, - modelfactor = 0.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = 16.5, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10, posy = 4.4, posz = -13.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0.88, g = 0.83, b = 0.2, a = 0.45, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10, posy = 4, posz = -13.5, radius = 11, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, + r = 0.88, g = 0.83, b = 0.2, a = 0.085, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10, posy = 4.4, posz = -13.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0.88, g = 0.83, b = 0.2, a = 0.45, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10, posy = 4, posz = -13.5, radius = 11, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, + r = 0.88, g = 0.83, b = 0.2, a = 0.085, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'point', pieceName = 'jet1', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 0.8, b = 0.5, a = 0.5, + r = 1, g = 0.8, b = 0.5, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'point', pieceName = 'jet2', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 22, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 0.8, b = 0.5, a = 0.5, + r = 1, g = 0.8, b = 0.5, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenblob = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 5, posz = 5, radius = 12, - color2r = 0, color2g = 1, color2b = 0, colortime = 30, - r = 0, g = 2, b = 0, a = 0.33, - modelfactor = 0.8, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armkam'] = { front1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 11, posz = 17, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.75, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'turret', + lightConfig = { posx = 0, posy = 14, posz = 19, radius = 17, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.7, posy = 10, posz = 9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.75, + lightConfig = { posx = -2.7, posy = 11, posz = 9, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.7, posy = 10, posz = 9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.75, + lightConfig = { posx = 2.7, posy = 11, posz = 9, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 12, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 30, - r = 1, g = 0.8, b = 0.5, a = 0.7, - modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.8, b = 0.5, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 12, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 25, - r = 1, g = 0.8, b = 0.5, a = 0.7, - modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.8, b = 0.5, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armlance'] = { @@ -17331,176 +12493,130 @@ local unitLights = { pieceName = 'thrust1', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.44, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash1 = { - lightType = 'point', - pieceName = 'rventblade', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 4.7, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflash2 = { - lightType = 'point', - pieceName = 'lventblade', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 4.7, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.45, g = 0.7, b = 1, a = 0.33, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armbrawl'] = { - frontcockpit = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 14, posz = 25, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flashtop = { + front1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 13.5, posz = 9, radius = 3.8, - dirx = 0, diry = 0, dirz = 1, theta = -9, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'turret', + lightConfig = { posx = 0, posy = 14, posz = 25, radius = 17, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3.0, posy = 14, posz = 14, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.1, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.7, posy = 11, posz = 14, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3.0, posy = 14, posz = 14, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.1, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0.3, posy = 8.5, posz = 20, radius = 80, - dirx = -0.1, diry = -0.4, dirz = 1, theta = 0.28, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0.3, posy = 8.5, posz = 24.5, radius = 8, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.9, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2.7, posy = 11, posz = 14, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armpnix'] = { front1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -4, posy = 11, posz = 26, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = 12, posz = 26, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = 4, posy = 11, posz = 26, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = 12, posz = 26, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -11.7, posy = 6.3, posz = -23.5, radius = 10, - color2r = 1.2, color2g = 0.92, color2b = 0.66, colortime = 6, + lightConfig = { posx = -11.7, posy = 6.3, posz = -23.5, radius = 13, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 11.7, posy = 6.3, posz = -23.5, radius = 10, - color2r = 1.2, color2g = 0.92, color2b = 0.66, colortime = 5, + lightConfig = { posx = 11.7, posy = 6.3, posz = -23.5, radius = 13, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', - lightConfig = { posx = 0, posy = 0, posz = -2, radius = 26, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 26, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.44, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.45, g = 0.7, b = 1, a = 0.28, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 0, posz = -2, radius = 26, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 26, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.44, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.45, g = 0.7, b = 1, a = 0.28, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backtop1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -17, posy = 11, posz = -17.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16.5, posy = 13, posz = -19.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backtop2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 17, posy = 11, posz = -17.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 16.5, posy = 13, posz = -19.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backbottom1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -17, posy = 2, posz = -17.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16.5, posy = 1, posz = -19.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backbottom2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 17, posy = 2, posz = -17.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 16.5, posy = 1, posz = -19.5, radius = 9, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armaca'] = { @@ -17511,7 +12627,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 19, r = 1.2, g = 0.85, b = 0.1, a = 0.8, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -17520,52 +12636,16 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, fan = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = 0, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backtop1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -9.5, posy = 8.5, posz = -3.7, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backtop2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 9.5, posy = 8.5, posz = -3.7, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -9.5, posy = 8.5, posz = 4.2, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 9.5, posy = 8.5, posz = 4.2, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = 0, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, -- top = { -- lightType = 'point', @@ -17574,7 +12654,7 @@ local unitLights = { -- color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, -- r = 1, g = 1, b = 0.4, a = 0.14, -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- front1 = { -- lightType = 'point', @@ -17583,7 +12663,7 @@ local unitLights = { -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.04, -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- front2 = { -- lightType = 'point', @@ -17592,7 +12672,7 @@ local unitLights = { -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.04, -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- front3 = { -- lightType = 'point', @@ -17601,7 +12681,7 @@ local unitLights = { -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.04, -- modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, back1 = { lightType = 'point', @@ -17610,7 +12690,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -17619,7 +12699,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', @@ -17628,7 +12708,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armamd'] = { @@ -17640,7 +12720,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 15, r = 2, g = 0.8, b = 0, a = 1, modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 4}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenlightamd = { @@ -17651,417 +12731,165 @@ local unitLights = { color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, r = 2, g = 0.8, b = 0, a = 1, modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 4}, - - }, - side1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 30, posy = 17, posz = -6, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 30, posy = 17, posz = 6, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - hinge1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 12, posy = 28, posz = 16, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - hinge2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11, posy = 29, posz = -18, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - hinge3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -12, posy = 20, posz = 18, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - hinge4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx =- 11, posy = 20, posz = -18, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- door1_2 = { - -- lightType = 'point', - -- pieceName = 'door1', - -- lightConfig = { posx = 8, posy = 5, posz = -11, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- door2_1 = { - -- lightType = 'point', - -- pieceName = 'door2', - -- lightConfig = { posx = -8, posy = 0, posz = 11, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- door2_2 = { - -- lightType = 'point', - -- pieceName = 'door2', - -- lightConfig = { posx = -8, posy = 5, posz = -11, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['corfmd'] = { - orangelightcenter = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 0, posy = 15, posz = 0, radius = 10.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - - }, - orangelight1 = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = -20, posy = 6, posz = 0, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - - }, - orangelight2 = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 20, posy = 6, posz = 0, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - - }, - orangelight3 = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 0, posy = 6, posz = 20, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - - }, - orangelight4 = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 0, posy = 6, posz = -20, radius = 4.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - - }, - greenlight1 = { - lightType = 'point', - pieceName = 'greendbr', - alliedOnly = true, - lightConfig = { posx = -14, posy = 30, posz = -14, radius = 16, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - - }, - greenlight2 = { - lightType = 'point', - pieceName = 'greendbl', - alliedOnly = true, - lightConfig = { posx = 14, posy = 30, posz = -14, radius = 16, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - greenlight3 = { - lightType = 'point', - pieceName = 'greendtr', - alliedOnly = true, - lightConfig = { posx = -14, posy = 30, posz = 14, radius = 16, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - greenlight4 = { - lightType = 'point', - pieceName = 'greendtl', - alliedOnly = true, - lightConfig = { posx = 14, posy = 30, posz = 14, radius = 16, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, + lifetime = 0, sustain = 0, animtype = 0}, + }, - -- side1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 30, posy = 17, posz = -6, radius = 12, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.5, - -- modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 30, posy = 17, posz = 6, radius = 12, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.5, - -- modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['corvalk'] = { - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4.5, posy = 1, posz = 26, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4.5, posy = 15, posz = 26, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - teamtopfront = { + side = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 22, posz = 4.9, radius = 3.0, - dirx = 0, diry = 0, dirz = -1, theta = -1.9, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 30, posy = 18, posz = 0, radius = 33, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamtopback = { + door1_1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 22, posz = -4.9, radius = 3.0, - dirx = 0, diry = 0, dirz = -1, theta = -1.9, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'door1', + lightConfig = { posx = 8, posy = 0, posz = 11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flasheye1 = { + door1_2 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -4, posy = 15, posz = 28, radius = 2.8, - dirx = 0, diry = 1, dirz = 0, theta = -10, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'door1', + lightConfig = { posx = 8, posy = 5, posz = -11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flasheye1b = { + door2_1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -4, posy = 12, posz = 28, radius = 2.8, - dirx = 0, diry = 1, dirz = -1, theta = -4, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'door2', + lightConfig = { posx = -8, posy = 0, posz = 11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + door2_2 = { + lightType = 'point', + pieceName = 'door2', + lightConfig = { posx = -8, posy = 5, posz = -11, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flasheye2 = { + }, + ['corvalk'] = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4, posy = 15, posz = 28, radius = 2.8, - dirx = 0, diry = 1, dirz = 0, theta = -10, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 1, posz = 26, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flasheye2b = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4, posy = 12, posz = 28, radius = 2.8, - dirx = 0, diry = 1, dirz = -1, theta = -4, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 15, posz = 26, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4.5, posy = 7, posz = 32, radius = 14, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.05, - -- modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4.5, posy = 1, posz = 26, radius = 14, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.05, - -- modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes5 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4.5, posy = 15, posz = 26, radius = 4, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = -1, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0.2, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes6 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4.5, posy = 7, posz = 32, radius = 14, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.05, - -- modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - thruster1 = { + eyes3 = { lightType = 'point', - pieceName = 'thrust1', - lightConfig = { posx = -2, posy = 0, posz = -10, radius = 16, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -4.5, posy = 7, posz = 32, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - thruster2 = { + eyes4 = { lightType = 'point', - pieceName = 'thrust2', - lightConfig = { posx = -2, posy = 0, posz = -10, radius = 16, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 4.5, posy = 1, posz = 26, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - thruster3 = { + eyes5 = { lightType = 'point', - pieceName = 'thrust3', - lightConfig = { posx = -2, posy = 0, posz = -10, radius = 16, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 4.5, posy = 15, posz = 26, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - thruster4 = { + eyes6 = { lightType = 'point', - pieceName = 'thrust4', - lightConfig = { posx = -2, posy = 0, posz = -10, radius = 16, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 4.5, posy = 7, posz = 32, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', pieceName = 'thrust1', - lightConfig = { posx = -2, posy = 0, posz = 4, radius = 50, - dirx = 0, diry = 0, dirz = -1, theta = 0.6, - color2r = 0.7, color2g = 0.66, color2b = 0.15, - r = 1, g = 0.8, b = 0.33, a = 0.1, colortime = 60, - modelfactor = -1.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 80, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', pieceName = 'thrust2', - lightConfig = { posx = -2, posy = 0, posz = 4, radius = 50, - dirx = 0, diry = 0, dirz = -1, theta = 0.6, - color2r = 0.7, color2g = 0.66, color2b = 0.15, - r = 1, g = 0.8, b = 0.33, a = 0.1, colortime = 55, - modelfactor = -1.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 80, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', pieceName = 'thrust3', - lightConfig = { posx = -2, posy = 0, posz = 4, radius = 50, - dirx = 0, diry = 0, dirz = -1, theta = 0.6, - color2r = 0.7, color2g = 0.66, color2b = 0.15, - r = 1, g = 0.8, b = 0.33, a = 0.1, colortime = 65, - modelfactor = -1.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 80, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', pieceName = 'thrust4', - lightConfig = { posx = -2, posy = 0, posz = 4, radius = 50, - dirx = 0, diry = 0, dirz = -1, theta = 0.6, - color2r = 0.7, color2g = 0.66, color2b = 0.15, - r = 1, g = 0.8, b = 0.33, a = 0.1, colortime = 63, - modelfactor = -1.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 80, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armemp'] = { base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -23, posy = 20.5, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -23, posy = 20.5, posz = 0, radius = 30, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 23, posy = 20.5, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 23, posy = 20.5, posz = 0, radius = 30, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armgplat'] = { @@ -18072,7 +12900,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -18081,7 +12909,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -18090,7 +12918,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -18099,7 +12927,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel1 = { lightType = 'point', @@ -18108,7 +12936,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel2 = { lightType = 'point', @@ -18117,65 +12945,36 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armatl'] = { base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15.5, posy = 11, posz = 15.5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15.5, posy = 10, posz = 15.5, radius = 22, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15.5, posy = 11, posz = 15.5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - torpedoflash = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -14.8, posy = 26, posz = -15.5, radius = 5.7, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15.5, posy = 10, posz = 15.5, radius = 22, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -14.8, posy = 24, posz = -15.5, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['coratl'] = { - torpedoflash1 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -16.7, posy = -2.2, posz = 9, radius = 2.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - torpedoflash2 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 16.7, posy = -2.2, posz = 9, radius = 2.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14.8, posy = 23, posz = -15.5, radius = 7, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armatlas'] = { @@ -18186,229 +12985,52 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 6, r = 0.88, g = 0.14, b = 0.14, a = 0.14, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, jetm = { lightType = 'point', pieceName = 'thrustm', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 20, - color2r = 0.7, color2g = 0.5, color2b = 0.25, colortime = 28, - r = 1, g = 0.8, b = 0.5, a = 0.5, - modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.75, b = 0.2, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, jetr = { - lightType = 'point', + lightType = 'cone', pieceName = 'thrustr', - lightConfig = { posx = -2, posy = 0, posz = -4, radius = 16, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustflashlf = { - lightType = 'point', - pieceName = 'jetl', - lightConfig = { posx = 2.5, posy = 5.5, posz = 1, radius = 4.8, - dirx = 0, diry = 0, dirz = 1, theta = -6, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustflashlb = { - lightType = 'point', - pieceName = 'jetl', - lightConfig = { posx = 2.5, posy = -5.5, posz = 1, radius = 4.8, - dirx = 0, diry = 0, dirz = 1, theta = -4.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustflashrf = { - lightType = 'point', - pieceName = 'jetr', - lightConfig = { posx = -2.5, posy = 5.5, posz = 1, radius = 4.8, - dirx = 0, diry = 0, dirz = 1, theta = -6, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustflashrb = { - lightType = 'point', - pieceName = 'jetr', - lightConfig = { posx = -2.5, posy = -5.5, posz = 1, radius = 4.8, - dirx = 0, diry = 0, dirz = 1, theta = -4.2, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = 0, posz = -2, radius = 120, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.12, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, jetl = { - lightType = 'point', + lightType = 'cone', pieceName = 'thrustl', - lightConfig = { posx = 2, posy = 0, posz = -4, radius = 16, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11, posy = 10, posz = -18.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.95, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11, posy = 10, posz = -18.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.95, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - transportlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = -3, posz = -8, radius = 12, - color2r = -3, color2g = -3, color2b = -3, colortime = 40, - r = -1, g = 1, b = 0, a = 1.1, - modelfactor = 0.4, specular = 0.1, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['armhvytrans'] = { - jetbltop = { - lightType = 'point', - pieceName = 'jetbl', - lightConfig = { posx = 7, posy = 0, posz = 7.3, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.8, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - jetbrtop = { - lightType = 'point', - pieceName = 'jetbr', - lightConfig = { posx = -7, posy = 0, posz = 7.3, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.8, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - jetfltop = { - lightType = 'point', - pieceName = 'jetfl', - lightConfig = { posx = 9.5, posy = 0, posz = 11.2, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.8, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - jetfrtop = { - lightType = 'point', - pieceName = 'jetfr', - lightConfig = { posx = -9.5, posy = 0, posz = 11.2, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.8, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustbl = { - lightType = 'point', - pieceName = 'thrustbl', - lightConfig = { posx = 0, posy = 0, posz = -6, radius = 18, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustbr = { - lightType = 'point', - pieceName = 'thrustbr', - lightConfig = { posx = 0, posy = 0, posz = -6, radius = 18, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustfl = { - lightType = 'point', - pieceName = 'thrustfl', - lightConfig = { posx = 0, posy = 0, posz = -6, radius = 18, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - trustfr = { - lightType = 'point', - pieceName = 'thrustfr', - lightConfig = { posx = 0, posy = 0, posz = -6, radius = 18, - color2r = 0.7, color2g = 0.66, color2b = 0.15, colortime = -1.5, - r = 1.3, g = 0.75, b = 0.3, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronttop = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 17, posz = 23, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontbot = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 1, posz = 23, radius = 6.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2, posy = 0, posz = -2, radius = 120, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 1, g = 0.8, b = 0.33, a = 0.12, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5, posy = 18, posz = -3, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.7, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -11, posy = 11, posz = -18.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5, posy = 18, posz = -3, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.7, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - transportlightl = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 7, posy = 6, posz = -10, radius = 12, - color2r = -3, color2g = -3, color2b = -3, colortime = 40, - r = -1, g = 1, b = 0, a = 1.1, - modelfactor = 0.4, specular = 0.1, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - transportlightr = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -7, posy = 6, posz = -10, radius = 12, - color2r = -3, color2g = -3, color2b = -3, colortime = 40, - r = -1, g = 1, b = 0, a = 1.1, - modelfactor = 0.4, specular = 0.1, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 11, posy = 11, posz = -18.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armeyes'] = { @@ -18419,7 +13041,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.15, modelfactor = 0.25, specular = 0.1, scattering = 0.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyeglow = { lightType = 'point', @@ -18428,54 +13050,54 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.8, g = 0.8, b = 0.8, a = 0.07, modelfactor = 0.1, specular = 0.1, scattering = 0.7, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coreyes'] = { eyeglow = { lightType = 'point', pieceName = 'sphere', - lightConfig = { posx = 0, posy = 25, posz = 0, radius = 120, + lightConfig = { posx = 0, posy = 22, posz = 0, radius = 110, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0.8, g = 0.8, b = 0.8, a = 0.11, + r = 0.8, g = 0.8, b = 0.8, a = 0.07, modelfactor = 0.1, specular = 0.1, scattering = 0.7, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', pieceName = 'sphere', - lightConfig = { posx = 10, posy = 13, posz = 0, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10, posy = 13, posz = 0, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.18, + modelfactor = 0.4, specular = 0.3, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', pieceName = 'sphere', - lightConfig = { posx = -10, posy = 13, posz = 0, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10, posy = 13, posz = 0, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.18, + modelfactor = 0.4, specular = 0.3, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', pieceName = 'sphere', - lightConfig = { posx = 0, posy = 13, posz = 10, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13, posz = 10, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.18, + modelfactor = 0.4, specular = 0.3, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes4 = { lightType = 'point', pieceName = 'sphere', - lightConfig = { posx = 0, posy = 13, posz = -10, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13, posz = -10, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.18, + modelfactor = 0.4, specular = 0.3, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armanni'] = { @@ -18484,139 +13106,108 @@ local unitLights = { pieceName = 'light', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 950, dirx = 0, diry = 0, dirz = 1, theta = 0.07, - color2r = 0.8, color2g = 0.8, color2b = 0.8, colortime = -1.0, -- whiten with texture anim pulsing - r = 1, g = 1, b = 0.8, a = 0.45, + r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - radarlight = { - lightType = 'point', - pieceName = 'dish', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 7, - color2r = -25, color2g = -25, color2b = -25, colortime = 40, - r = 0, g = 1, b = 0, a = 1.0, - modelfactor = 0.5, specular = 0.4, scattering = 0.5, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- build orbit light that moves on the Z axis, and changes color - zoomlight = { - lightType = 'point', - pieceName = 'barrel', - lightConfig = { posx = 0, posy = 1, posz = -4, radius = 20, - dirx = 0, diry = 0, dirz = 0.5, theta = -18, - color2r = -1.0, color2g = -1.0, color2b = -1.0, colortime = 60, - r = 0.1, g = 0.3, b = 1.2, a = 2.5, - modelfactor = 1.7, specular = 0.8, scattering = 0.4, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - zoomlight2 = { - lightType = 'point', - pieceName = 'barrel', - lightConfig = { posx = 0, posy = 1.5, posz = -4, radius = 4, - dirx = 0, diry = 0, dirz = 0.5, theta = -18, - color2r = -1, color2g = -1, color2b = -1, colortime = 60, - r = 1, g = 1, b = 2, a = 6, - modelfactor = 1.7, specular = 0.8, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, -}, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 19, posz = 39, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 18, posz = 38, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 19, posz = -39, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 18, posz = -38, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 33, posy = 22, posz = 10, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 33, posy = 21, posz = 10, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 33, posy = 22, posz = -10, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 33, posy = 21, posz = -10, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -33, posy = 22, posz = 10, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -33, posy = 21, posz = 10, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -33, posy = 22, posz = -10, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -33, posy = 21, posz = -10, radius = 28, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light = { lightType = 'point', pieceName = 'light', - lightConfig = { posx = -2, posy = 1.5, posz = 2.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.13, + modelfactor = 0.4, specular = 0.5, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = 5.5, posy = 14, posz = 0, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.2, g = 1, b = 0.2, a = 0.2, - modelfactor = 0.2, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0.2, selfshadowing = 0}, + lightConfig = { posx = 4.5, posy = 14, posz = -1, radius = 24, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = -5.5, posy = 14, posz = 0, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.2, g = 1, b = 0.2, a = 0.2, - modelfactor = 0.2, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 14, posz = -1, radius = 24, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna1 = { lightType = 'point', - pieceName = 'antenna', - lightConfig = { posx = 2, posy = 21, posz = 0, radius = 8.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2.0, - r = 1, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'sleeve', + lightConfig = { posx = -6.5, posy = 35, posz = -8, radius = 8.5, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna2 = { lightType = 'point', - pieceName = 'antenna', - lightConfig = { posx = 2, posy = 12, posz = -2, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -2.0, - r = 1, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'sleeve', + lightConfig = { posx = -6.5, posy = 27, posz = -10.4, radius = 6, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armannit3'] = { @@ -18627,7 +13218,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.07, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -18636,7 +13227,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -18645,7 +13236,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -18654,7 +13245,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -18663,7 +13254,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base5 = { lightType = 'point', @@ -18672,7 +13263,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base6 = { lightType = 'point', @@ -18681,7 +13272,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, light = { lightType = 'point', @@ -18690,7 +13281,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.13, modelfactor = 0.4, specular = 0.5, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -18699,7 +13290,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -18708,7 +13299,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna1 = { lightType = 'point', @@ -18717,7 +13308,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, antenna2 = { lightType = 'point', @@ -18726,129 +13317,74 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armblade'] = { - fan = { + top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 7, posz = 4, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8.5, posz = 4, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- top1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 8.5, posz = 4, radius = 16, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, thruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4.3, posz = -17.5, radius = 7, - color2r = 1.1, color2g = 0.92, color2b = 0.66, colortime = 4, - r = 0.94, g = 0.83, b = 0.2, a = 0.085, + lightConfig = { posx = 0, posy = 4.3, posz = -17.5, radius = 9, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, + r = 0.88, g = 0.83, b = 0.2, a = 0.085, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = -1.5, radius = 22, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.65, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0.3, posy = 3.5, posz = 23.5, radius = 8, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.9, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0.3, posy = 3.5, posz = 20, radius = 80, - dirx = -0.1, diry = -0.4, dirz = 1, theta = 0.28, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.45, g = 0.7, b = 1, a = 0.33, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armdfly'] = { - flashtop = { - lightType = 'point', - pieceName = 'barrel', - lightConfig = { posx = 0, posy = 3.2, posz = 0.7, radius = 2.5, - dirx = 0, diry = 0, dirz = 1, theta = -2.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - emplight = { - lightType = 'point', - pieceName = 'barrel', - lightConfig = { posx = 0, posy = 0, posz = 10.5, radius = 9, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, - r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 0.7, lensflare =15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - empblast = { - lightType = 'point', - pieceName = 'flare', - lightConfig = { posx = 0, posy = 2.7, posz = 6, radius = 25, - color2r = 0.2, color2g = 0.2, color2b = 0.6, colortime = 2, - r = 0.85, g = 0.85, b = 1.1, a = 1.5, - modelfactor = 0.8, specular = 0.8, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, fan1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -32.8, posy = 11, posz = 15.3, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -32.8, posy = 11, posz = 15.3, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fan2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 32.8, posy = 11, posz = 15.3, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 32.8, posy = 11, posz = 15.3, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fan3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -32.8, posy = 11, posz = -15.3, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -32.8, posy = 11, posz = -15.3, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fan4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 32.8, posy = 11, posz = -15.3, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 32.8, posy = 11, posz = -15.3, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', @@ -18858,7 +13394,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.14, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -18867,7 +13403,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.14, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', @@ -18876,7 +13412,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', @@ -18885,395 +13421,368 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -5, posy = 13, posz = 42, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'turret', + lightConfig = { posx = -5, posy = 13, posz = 45, radius = 30, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - transportlight1 = { + inner1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -18, posy = 2, posz = 21, radius = 12, - color2r = -3, color2g = -3, color2b = -3, colortime = 40, - r = -1, g = 1, b = 0, a = 1.1, - modelfactor = 0.4, specular = 0.1, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'turret', + lightConfig = { posx = -17, posy = 5.5, posz = 20, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - transportlight2 = { + inner2 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 18, posy = 2, posz = 21, radius = 12, - color2r = -3, color2g = -3, color2b = -3, colortime = 40, - r = -1, g = 1, b = 0, a = 1.1, - modelfactor = 0.4, specular = 0.1, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'turret', + lightConfig = { posx = 17, posy = 5.5, posz = 20, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- inner1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -17, posy = 5.5, posz = 20, radius = 10, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 1, b = 1, a = 0.33, - -- modelfactor = 0.3, specular = 0.3, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- inner2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 17, posy = 5.5, posz = 20, radius = 10, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 1, b = 1, a = 0.33, - -- modelfactor = 0.3, specular = 0.3, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, inner3 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -17, posy = 5.5, posz = -20, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'turret', + lightConfig = { posx = -17, posy = 5.5, posz = -20, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner4 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 17, posy = 5.5, posz = -20, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'turret', + lightConfig = { posx = 17, posy = 5.5, posz = -20, radius = 25, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corbw'] = { emplight = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 1.5, posz = 5.8, radius = 8, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, + lightConfig = { posx = 0, posy = 1.5, posz = 5.2, radius = 5, + color2r = 0.3, color2g = 0.3, color2b = 0.7, colortime = 100, r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 0.7, lensflare =15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + modelfactor = 0.2, specular = 0.3, scattering = 2, lensflare = 20, + lifetime = 0, sustain = 0, animtype = 0 }, }, empblast = { lightType = 'point', pieceName = 'flare', - lightConfig = { posx = 0, posy = 2.7, posz = 6, radius = 25, - color2r = 0.2, color2g = 0.2, color2b = 0.6, colortime = 2, - r = 0.85, g = 0.85, b = 1.1, a = 1.5, + lightConfig = { posx = 0, posy = 2.7, posz = 6, radius = 20, + color2r = 0.3, color2g = 0.3, color2b = 0.7, colortime = 2, + r = 0.85, g = 0.85, b = 1.1, a = 1, modelfactor = 0.8, specular = 0.8, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, - teamback = { + eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 2.7, posz = -8.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = -1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.3, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4.4, posz = 3.5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.085, + modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', - lightConfig = { posx = 0, posy = 3, posz = -4, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0.45, g = 0.7, b = 1, a = 1.1, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = -4, radius = 14, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 0.45, g = 0.7, b = 1, a = 0.18, + modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', - lightConfig = { posx = 0, posy = 3, posz = -4, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0.45, g = 0.7, b = 1, a = 1.1, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = -4, radius = 14, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 0.45, g = 0.7, b = 1, a = 0.18, + modelfactor = 0.4, specular = 0, scattering = 0.23, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corawac'] = { dish = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 15, posz = -1, radius = 16, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.3, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 15, posz = -1, radius = 28, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 5, posz = -20, radius = 5, - color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, - r = 0.88, g = 0.83, b = 0.2, a = 0.16, - modelfactor = 0.3, specular = 0.4, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5, posz = -20, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 6, + r = 0.88, g = 0.14, b = 0.14, a = 0.11, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -7, posy = 5, posz = -24, radius = 5, - color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, - r = 0.88, g = 0.83, b = 0.2, a = 0.16, - modelfactor = 0.3, specular = 0.4, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7, posy = 5, posz = -24, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 7, + r = 0.88, g = 0.14, b = 0.14, a = 0.11, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 7, posy = 5, posz = -24, radius = 5, - color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, - r = 0.88, g = 0.83, b = 0.2, a = 0.16, - modelfactor = 0.3, specular = 0.4, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, + lightConfig = { posx = 7, posy = 5, posz = -24, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 5, + r = 0.88, g = 0.14, b = 0.14, a = 0.11, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustl = { lightType = 'point', pieceName = 'lthrust', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 25, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.6, g = 1, b = 0.6, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustr = { lightType = 'point', pieceName = 'rthrust', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 25, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.6, g = 1, b = 0.6, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, thrustm = { lightType = 'point', pieceName = 'mthrust', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 33, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.6, g = 1, b = 0.6, a = 0.25, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armseap'] = { thruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 0, posz = -11.5, radius = 9, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = -11.5, radius = 15, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 7, + r = 0.88, g = 0.14, b = 0.14, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustm = { lightType = 'point', pieceName = 'thrustm', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 0.6, g = 1, b = 0.6, a = 0.3, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsfig'] = { front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 8, posz = 15, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.65, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = 15, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fan1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6, posy = 7, posz = 3.5, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = 7, posz = 3.5, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fan2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6, posy = 7, posz = 3.5, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = 7, posz = 3.5, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 0, posy = 2.9, posz = -16, radius = 5, - color2r = 0.2, color2g = 0.8, color2b = 0.45, colortime = 6, - r = 0.3, g = 0.8, b = 0.6, a = 0.6, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrusterl = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -10, posy = 2.9, posz = -16, radius = 7, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrusterr = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 10, posy = 2.9, posz = -16, radius = 6, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- thrusterl = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -10, posy = 2.9, posz = -16, radius = 7, - -- color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, - -- r = 0.88, g = 0.83, b = 0.2, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- thrusterr = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 10, posy = 2.9, posz = -16, radius = 6, - -- color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, - -- r = 0.88, g = 0.83, b = 0.2, a = 0.055, - -- modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 24, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.5, g = 1, b = 0.5, a = 0.75, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.6, g = 1, b = 0.6, a = 0.24, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsehak'] = { - greenblob1 = { - lightType = 'point', - pieceName = 'dish', - lightConfig = { posx = 0, posy = 4, posz = -6, radius = 14, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 0, g = 1, b = 0, a = 0.45, - modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -1, posy = 13.5, posz = 13.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.65, - modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1, posy = 13.5, posz = 13.5, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6.5, posy = 8, posz = 13, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.3, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 8, posz = 13, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.5, posy = 8, posz = 13, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.3, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 8, posz = 13, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6.5, posy = 8, posz = -13, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.3, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 8, posz = -13, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.5, posy = 8, posz = -13, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.3, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 8, posz = -13, radius = 7, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -6, posy = 2, posz = -6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 6, posy = 2, posz = -6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -6, posy = 2, posz = 6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + corner4 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 6, posy = 2, posz = 6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- corner1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -5, posy = 3, posz = -5, radius = 3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 1, b = 0.2, a = 0.65, - -- modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- corner2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6, posy = 2, posz = -6, radius = 15, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- corner3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6, posy = 2, posz = 6, radius = 15, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- corner4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6, posy = 2, posz = 6, radius = 15, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, fanfr = { lightType = 'point', pieceName = 'fanfr', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fanfl = { lightType = 'point', pieceName = 'fanfl', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fanbr = { lightType = 'point', pieceName = 'fanbr', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, fanbl = { lightType = 'point', pieceName = 'fanbl', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armminebomber'] = { @@ -19284,7 +13793,7 @@ local unitLights = { color2r = 1, color2g = 0.6, color2b = 0.2, colortime = 7, r = 0.88, g = 0.5, b = 0.14, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -19293,108 +13802,99 @@ local unitLights = { color2r = 1, color2g = 0.6, color2b = 0.2, colortime = 7, r = 0.88, g = 0.5, b = 0.14, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armliche'] = { thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 9.5, posz = -22, radius = 8, + lightConfig = { posx = 0, posy = 9.5, posz = -22, radius = 16, color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 7, - r = 0.88, g = 0.14, b = 0.14, a = 0.3, + r = 0.88, g = 0.14, b = 0.14, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 8.5, posz = -25, radius = 9, + lightConfig = { posx = -12, posy = 8.5, posz = -25, radius = 14, color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 6, - r = 0.88, g = 0.14, b = 0.14, a = 0.3, + r = 0.88, g = 0.14, b = 0.14, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12, posy = 8.5, posz = -25, radius = 9, + lightConfig = { posx = 12, posy = 8.5, posz = -25, radius = 14, color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 5, - r = 0.88, g = 0.14, b = 0.14, a = 0.3, + r = 0.88, g = 0.14, b = 0.14, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', pieceName = 'thrusta', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 0.7, b = 0.6, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 0.6, b = 0.6, a = 0.33, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', pieceName = 'thrustb', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 0.7, b = 0.6, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 0.6, b = 0.6, a = 0.33, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustc = { lightType = 'point', pieceName = 'thrustc', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 0.7, b = 0.6, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 0.6, b = 0.6, a = 0.33, + modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, frontthruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 8.5, posz = 13, radius = 7, - color2r = 1, color2g = 0.4, color2b = 0.2, colortime = 7, - r = 0.95, g = 0.27, b = 0.17, a = 0.44, + lightConfig = { posx = -12, posy = 8.5, posz = 13, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 6, + r = 0.95, g = 0.17, b = 0.17, a = 0.08, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, frontthruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12, posy = 8.5, posz = 13, radius = 7, - color2r = 1, color2g = 0.4, color2b = 0.2, colortime = 6, - r = 0.95, g = 0.17, b = 0.17, a = 0.44, + lightConfig = { posx = 12, posy = 8.5, posz = 13, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 5, + r = 0.95, g = 0.17, b = 0.17, a = 0.08, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -21, posy = 26, posz = -17, radius = 6, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1.1, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -21, posy = 26, posz = -17, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 21, posy = 26, posz = -17, radius = 6, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1.1, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flashbomb1 = { - lightType = 'point', - pieceName = 'bomb1', - lightConfig = { posx = 0, posy = 0.3, posz = 10.6, radius = 4.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 22, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.3, specular = 0.2, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 21, posy = 26, posz = -17, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corape'] = { @@ -19405,7 +13905,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -19414,7 +13914,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustl = { lightType = 'point', @@ -19423,7 +13923,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustr = { lightType = 'point', @@ -19432,218 +13932,160 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armawac'] = { - greenblob1 = { - lightType = 'point', - pieceName = 'dish', - lightConfig = { posx = 7, posy = 5, posz = 0, radius = 10, - color2r = 0, color2g = 1, color2b = 0, colortime = 30, - r = 0, g = 2, b = 0, a = 0.33, - modelfactor = 0.8, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenblob2 = { - lightType = 'point', - pieceName = 'dish', - lightConfig = { posx = -7, posy = 5, posz = 0, radius = 10, - color2r = 0, color2g = 1, color2b = 0, colortime = 30, - r = 0, g = 2, b = 0, a = 0.33, - modelfactor = 0.8, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4.5, posy = 11, posz = -14, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 10, posz = -14, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4.5, posy = 11, posz = -14, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4.5, posy = 10, posz = -14, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -12, posy = 12, posz = 11, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = 10, posz = 11, radius = 29, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 12, posy = 12, posz = 11, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12, posy = 10, posz = 11, radius = 29, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, passivethruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4.3, posz = -30, radius = 8, + lightConfig = { posx = 0, posy = 4.3, posz = -30, radius = 9, color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, - r = 0.88, g = 0.83, b = 0.2, a = 0.33, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.88, g = 0.83, b = 0.2, a = 0.085, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust = { lightType = 'point', pieceName = 'thrust', - lightConfig = { posx = 0, posy = 0, posz = -4, radius = 22, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 0.45, g = 0.7, b = 1, a = 0.5, + r = 0.45, g = 0.7, b = 1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['cormine4'] = { - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 4.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corfmine3'] = { top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 8.5, posz = 0, radius = 3.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - core = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 8, posz = 0, radius = 6.5, - color2r = -1, color2g = -1, color2b = -1, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 10, posz = 0, radius = 25, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0.5, scattering = 1.1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormine3'] = { top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 3.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - core = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 5, posz = 0, radius = 6.5, - color2r = -1, color2g = -1, color2b = -1, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 7, posz = 0, radius = 25, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0.5, scattering = 1.1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormine2'] = { top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 4.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6, posz = 0, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0.5, scattering = 1.1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormine1'] = { top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 3.8, posz = 0, radius = 4.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = 0, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0.5, scattering = 1.1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfmine3'] = { top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 10.5, posz = 0, radius = 4.0, - color2r = -7, color2g = -7, color2b = -7, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11, posz = 0, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0.5, scattering = 1.1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmine3'] = { top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 3.8, posz = 0, radius = 4.5, - color2r = -7, color2g = -7, color2b = -7, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['armmine2'] = { - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 4.2, posz = 0, radius = 4.0, - color2r = -7, color2g = -7, color2b = -7, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['armmine1'] = { - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 7.2, posz = 0, radius = 3.5, - color2r = -7, color2g = -7, color2b = -7, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.04, + modelfactor = 0.4, specular = 0, scattering = 1.1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsd'] = { antenna = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 25, posz = 8.5, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 1, b = 1, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 25, posz = 8.5, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, inner = { lightType = 'point', pieceName = 'base', lightConfig = { posx = -3.5, posy = 9, posz = 12, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armmine2'] = { + top1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 1.1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armvulc'] = { @@ -19654,7 +14096,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', @@ -19663,7 +14105,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', @@ -19672,7 +14114,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', @@ -19681,7 +14123,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -19690,7 +14132,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -19699,7 +14141,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -19708,7 +14150,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -19717,7 +14159,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base5 = { lightType = 'point', @@ -19726,7 +14168,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base6 = { lightType = 'point', @@ -19735,7 +14177,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base7 = { lightType = 'point', @@ -19744,7 +14186,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base8 = { lightType = 'point', @@ -19753,7 +14195,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base9 = { lightType = 'point', @@ -19762,7 +14204,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base9 = { lightType = 'point', @@ -19771,7 +14213,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base10 = { lightType = 'point', @@ -19780,7 +14222,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base11 = { lightType = 'point', @@ -19789,640 +14231,521 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base12 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 33, posy = 65, posz = 0, radius = 36, + pieceName = 'base', + lightConfig = { posx = 33, posy = 65, posz = 0, radius = 36, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + turretbase1 = { + lightType = 'point', + pieceName = 'turret', + lightConfig = { posx = -24, posy = 18, posz = -24, radius = 30, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + turretbase2 = { + lightType = 'point', + pieceName = 'turret', + lightConfig = { posx = -24, posy = 44, posz = -24, radius = 30, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + turretbase3 = { + lightType = 'point', + pieceName = 'turret', + lightConfig = { posx = 24, posy = 18, posz = -24, radius = 30, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + turretbase4 = { + lightType = 'point', + pieceName = 'turret', + lightConfig = { posx = 24, posy = 44, posz = -24, radius = 30, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + turrettop1 = { + lightType = 'point', + pieceName = 'turret', + lightConfig = { posx = 16, posy = 66, posz = -18, radius = 38, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + turrettop2 = { + lightType = 'point', + pieceName = 'turret', + lightConfig = { posx = -16, posy = 66, posz = -18, radius = 38, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armtl'] = { + barrel1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -14, posy = -2, posz = -6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + barrel2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -14, posy = -2, posz = 6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + barrel3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 14, posy = -2, posz = -6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + barrel4 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 14, posy = -2, posz = 6, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armbotrail'] = { + top = { + lightType = 'point', + pieceName = 'rail', + lightConfig = { posx = 0, posy = 63, posz = -113, radius = 40, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + inner = { + lightType = 'point', + pieceName = 'rail', + lightConfig = { posx = 0, posy = 33, posz = -70, radius = 32, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.13, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armfus'] = { + fusionglow1 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 0, posy = 19, posz = 0, radius = 7, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = -1, g = 1, b = 1, a = 0.8, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow2 = { + lightType = 'point', + pieceName = 'emit2', + lightConfig = { posx = 0, posy = 19, posz = 0, radius = 7, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = -1, g = 1, b = 1, a = 0.8, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow3 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 0, posy = 15, posz = 0, radius = 8, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = -1, g = 1, b = 1, a = 0.9, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow4 = { + lightType = 'point', + pieceName = 'emit2', + lightConfig = { posx = 0, posy = 15, posz = 0, radius = 8, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = -1, g = 1, b = 1, a = 0.9, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow5 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 0, posy = 11, posz = 0, radius = 10, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = -1, g = 1, b = 1, a = 0.9, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow6 = { + lightType = 'point', + pieceName = 'emit2', + lightConfig = { posx = 0, posy = 11, posz = 0, radius = 10, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = -1, g = 1, b = 1, a = 0.9, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow7 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 0, posy = 7, posz = 0, radius = 11, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 1, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + fusionglow8 = { + lightType = 'point', + pieceName = 'emit2', + lightConfig = { posx = 0, posy = 7, posz = 0, radius = 11, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 1, + modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top_outter1 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = -15, posy = 0, posz = 0, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top_outter2 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 15, posy = 0, posz = 0, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top_outter3 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 0, posy = 0, posz = -15, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top_outter4 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 0, posy = 0, posz = 15, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top_outter5 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = -11.5, posy = 0, posz = -11.5, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top_outter6 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 11.5, posy = 0, posz = -11.5, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + top_outter7 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = -11.5, posy = 0, posz = 11.5, radius = 28, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - turretbase1 = { + top_outter8 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -24, posy = 18, posz = -24, radius = 30, + pieceName = 'emit1', + lightConfig = { posx = 11.5, posy = 0, posz = 11.5, radius = 28, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.055, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - turretbase2 = { + top_outter2_1 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -24, posy = 44, posz = -24, radius = 30, + pieceName = 'emit2', + lightConfig = { posx = -15, posy = 0, posz = 0, radius = 28, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.055, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - turretbase3 = { + top_outter2_2 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 24, posy = 18, posz = -24, radius = 30, + pieceName = 'emit2', + lightConfig = { posx = 15, posy = 0, posz = 0, radius = 28, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.055, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - turretbase4 = { + top_outter2_3 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 24, posy = 44, posz = -24, radius = 30, + pieceName = 'emit2', + lightConfig = { posx = 0, posy = 0, posz = -15, radius = 28, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.055, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - turrettop1 = { + top_outter2_4 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 16, posy = 66, posz = -18, radius = 38, + pieceName = 'emit2', + lightConfig = { posx = 0, posy = 0, posz = 15, radius = 28, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.055, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - turrettop2 = { + top_outter2_5 = { lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -16, posy = 66, posz = -18, radius = 38, + pieceName = 'emit2', + lightConfig = { posx = -11.5, posy = 0, posz = -11.5, radius = 28, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.055, - modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['armtl'] = { - barrel1 = { + top_outter2_6 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13, posy = -2.4, posz = -6, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit2', + lightConfig = { posx = 11.5, posy = 0, posz = -11.5, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - barrel2 = { + top_outter2_7 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13, posy = -2.4, posz = 6, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit2', + lightConfig = { posx = -11.5, posy = 0, posz = 11.5, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - barrel3 = { + top_outter2_8 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13, posy = -2.4, posz = -6, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit2', + lightConfig = { posx = 11.5, posy = 0, posz = 11.5, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - barrel4 = { + side1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13, posy = -2.4, posz = 6, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit1', + lightConfig = { posx = -23, posy = -32, posz = 0, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - torpedoflash = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 3.7, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['cortl'] = { - torpedoflash = { + side2 = { lightType = 'point', - pieceName = 'gun', - lightConfig = { posx = 0.2, posy = -4.3, posz = 17.5, radius = 2.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit1', + lightConfig = { posx = 0, posy = -32, posz = -23, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['armbotrail'] = { - top = { + side3 = { lightType = 'point', - pieceName = 'rail', - lightConfig = { posx = 0, posy = 63, posz = -113, radius = 40, + pieceName = 'emit1', + lightConfig = { posx = 0, posy = -32, posz = 23, radius = 26, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.1, - modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - inner = { + side4 = { lightType = 'point', - pieceName = 'rail', - lightConfig = { posx = 0, posy = 33, posz = -70, radius = 32, + pieceName = 'emit2', + lightConfig = { posx = 23, posy = -32, posz = 0, radius = 26, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - r = 1, g = 1, b = 0.2, a = 0.13, - modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['armfus'] = { - fusionglow1 = { + side5 = { lightType = 'point', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = 16, posz = 0, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = 70, - r = -1, g = 1, b = 1, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 1.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit2', + lightConfig = { posx = 0, posy = -32, posz = -23, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - fusionglow2 = { + side6 = { lightType = 'point', pieceName = 'emit2', - lightConfig = { posx = 0, posy = 16, posz = 0, radius = 9, - color2r = -0.2, color2g = -0.2, color2b = -0.2, colortime = 70, - r = -1, g = 1, b = 1, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 1.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -32, posz = 23, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- fusionglow3 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 0, posy = 15, posz = 0, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 70, - -- r = -1, g = 1, b = 1, a = 0.9, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- fusionglow4 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 0, posy = 15, posz = 0, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 70, - -- r = -1, g = 1, b = 1, a = 0.9, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- fusionglow5 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 0, posy = 11, posz = 0, radius = 10, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 70, - -- r = -1, g = 1, b = 1, a = 0.9, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- fusionglow6 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 0, posy = 11, posz = 0, radius = 10, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 70, - -- r = -1, g = 1, b = 1, a = 0.9, - -- modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - fusionglow7 = { + cylinder1 = { lightType = 'point', pieceName = 'emit1', - lightConfig = { posx = 0, posy = 7, posz = 0, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 1, - modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fusionglow8 = { - lightType = 'point', - pieceName = 'emit2', - lightConfig = { posx = 0, posy = 7, posz = 0, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 1, - modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14, posy = -27.2, posz = -24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top_outter1 = { + cylinder2 = { lightType = 'point', pieceName = 'emit1', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.4, g = 1, b = 0.2, a = 2.7, - modelfactor = 1.4, specular = 0.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14, posy = -27.2, posz = 24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top_outter2 = { + cylinder3 = { lightType = 'point', - pieceName = 'emit2', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.4, g = 1, b = 0.2, a = 2.7, - modelfactor = 1.4, specular = 1.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit1', + lightConfig = { posx = 14, posy = -27.2, posz = -24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- top_outter1 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = -15, posy = 0, posz = 0, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 15, posy = 0, posz = 0, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter3 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 0, posy = 0, posz = -15, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter4 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 0, posy = 0, posz = 15, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter5 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = -11.5, posy = 0, posz = -11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter6 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 11.5, posy = 0, posz = -11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter7 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = -11.5, posy = 0, posz = 11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter8 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 11.5, posy = 0, posz = 11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_1 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = -15, posy = 0, posz = 0, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_2 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 15, posy = 0, posz = 0, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_3 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 0, posy = 0, posz = -15, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_4 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 0, posy = 0, posz = 15, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_5 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = -11.5, posy = 0, posz = -11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_6 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 11.5, posy = 0, posz = -11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_7 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = -11.5, posy = 0, posz = 11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top_outter2_8 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 11.5, posy = 0, posz = 11.5, radius = 28, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0.5, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - side1 = { + cylinder4 = { lightType = 'point', pieceName = 'emit1', - lightConfig = { posx = -26, posy = -32, posz = 0, radius = 13, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.2, g = 1, b = 0.7, a = 0.4, - modelfactor = 0.8, specular = 0.4, scattering = 1.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14, posy = -27.2, posz = 24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side2 = { + cylinder5 = { lightType = 'point', pieceName = 'emit1', - lightConfig = { posx = 0, posy = -32, posz = -25, radius = 13, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.2, g = 1, b = 0.7, a = 0.4, + lightConfig = { posx = -24, posy = -27.2, posz = -14, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - side3 = { + cylinder6 = { lightType = 'point', pieceName = 'emit1', - lightConfig = { posx = 0, posy = -32, posz = 25, radius = 13, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.2, g = 1, b = 0.7, a = 0.4, + lightConfig = { posx = -24, posy = -27.2, posz = 14, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - side4 = { + cylinder7 = { lightType = 'point', pieceName = 'emit2', - lightConfig = { posx = 26, posy = -32, posz = 0, radius = 13, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.2, g = 1, b = 0.7, a = 0.4, + lightConfig = { posx = -14, posy = -27.2, posz = -24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - side5 = { + cylinder8 = { lightType = 'point', pieceName = 'emit2', - lightConfig = { posx = 0, posy = -32, posz = -25, radius = 13, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.2, g = 1, b = 0.7, a = 0.4, + lightConfig = { posx = -14, posy = -27.2, posz = 24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - side6 = { + cylinder9 = { lightType = 'point', pieceName = 'emit2', - lightConfig = { posx = 0, posy = -32, posz = 25, radius = 13, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.2, g = 1, b = 0.7, a = 0.4, + lightConfig = { posx = 14, posy = -27.2, posz = -24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - side1cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = -28, posz = 0, radius = 80, - dirx = -1, diry = -0.45, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = -28, posz = 0, radius = 50, - dirx = 0, diry = -0.45, dirz = -1, theta = 0.29, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side3cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = -28, posz = 0, radius = 50, - dirx = 0, diry = -0.45, dirz = 1, theta = 0.29, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side4cone = { - lightType = 'cone', - pieceName = 'emit2', - lightConfig = { posx = 0, posy = -28, posz = 0, radius = 50, - dirx = 0, diry = -0.45, dirz = -1, theta = 0.29, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side5cone = { - lightType = 'cone', - pieceName = 'emit2', - lightConfig = { posx = 0, posy = -28, posz = 0, radius = 80, - dirx = 1, diry = -0.45, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side6cone = { - lightType = 'cone', + cylinder10 = { + lightType = 'point', pieceName = 'emit2', - lightConfig = { posx = 0, posy = -28, posz = 0, radius = 50, - dirx = 0, diry = -0.45, dirz = 1, theta = 0.29, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- cylinder1 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = -14, posy = -27.2, posz = -24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder2 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = -14, posy = -27.2, posz = 24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder3 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 14, posy = -27.2, posz = -24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder4 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = 14, posy = -27.2, posz = 24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder5 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = -24, posy = -27.2, posz = -14, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder6 = { - -- lightType = 'point', - -- pieceName = 'emit1', - -- lightConfig = { posx = -24, posy = -27.2, posz = 14, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder7 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = -14, posy = -27.2, posz = -24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder8 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = -14, posy = -27.2, posz = 24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder9 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 14, posy = -27.2, posz = -24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder10 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 14, posy = -27.2, posz = 24, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder11 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 24, posy = -27.2, posz = -14, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- cylinder12 = { - -- lightType = 'point', - -- pieceName = 'emit2', - -- lightConfig = { posx = 24, posy = -27.2, posz = 14, radius = 10, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['corfus'] = { - -- fusionglowcoretimed = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 44, - -- color2r = -4, color2g = -4, color2b = -4, colortime = -1, - -- r = 1, g = 1, b = 1, a = 0.3, - -- modelfactor = 0.1, specular = 0.6, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - - fusionglowcore = { + lightConfig = { posx = 14, posy = -27.2, posz = 24, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + cylinder11 = { lightType = 'point', - pieceName = 'emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 10, - color2r = -4, color2g = -4, color2b = -4, colortime = 0, - r = -1, g = 1, b = 1, a = 1.2, - modelfactor = 0.1, specular = 1.2, scattering = 4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit2', + lightConfig = { posx = 24, posy = -27.2, posz = -14, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - + cylinder12 = { + lightType = 'point', + pieceName = 'emit2', + lightConfig = { posx = 24, posy = -27.2, posz = 14, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['corfus'] = { fusionglow = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 45, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, -- Negative colortime means modulate it - --dirx = 0.1, diry = 0.11, dirz = 0.12, theta = -12.0, -- Orbit at a radius of 16 elmos with a period of ~0.1Hz - r = -1, g = 1, b = 1, a = 0.66, - modelfactor = 0.1, specular = 1.2, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 60, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - + -- fusionorb = { -- lightType = 'point', -- pieceName = 'emit', @@ -20430,91 +14753,38 @@ local unitLights = { -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.18, -- modelfactor = 0.1, specular = 0.66, scattering = 6, lensflare = 5, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, }, - ['corafus'] = { + ['legfus'] = { fusionglow = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 82, + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 45, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.66, - modelfactor = 0.1, specular = 1.2, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashlowleft1 = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = 6.3, posy = 9.5, posz = 51.8, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashlowright1 = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = -6.3, posy = 9.5, posz = 51.8, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashhighleft1 = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = 6.3, posy = 26.9, posz = 32.3, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 20, - r = -1, g = 0, b = 0, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashhighright1 = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = -6.3, posy = 26.9, posz = 32.3, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 20, - r = -1, g = 0, b = 0, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - - teamflashlowleft2 = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = -47.8, posy = 9.5, posz = -20.4, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashlowright2 = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = -41.5, posy = 9.5, posz = -31.0, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.2, specular = 1.2, scattering = 2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamflashlowleft3 = { + fusionglow2 = { lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = 47.8, posy = 9.5, posz = -20.4, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit', + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 55, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.1, specular = 1.2, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamflashlowright3 = { + }, + ['corafus'] = { + fusionglow = { lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = 41.5, posy = 9.5, posz = -31.3, radius = 1.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 82, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.66, + modelfactor = 0.1, specular = 1.2, scattering = 2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, -- fusionorb = { -- lightType = 'point', @@ -20523,7 +14793,7 @@ local unitLights = { -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, -- r = 1, g = 1, b = 1, a = 0.2, -- modelfactor = 0.1, specular = 1, scattering = 6, lensflare = 10, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, }, ['armafus'] = { @@ -20531,29 +14801,29 @@ local unitLights = { lightType = 'point', pieceName = 'emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 72, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, + color2r = 0, color2g = 0, color2b = 0, colortime = 80, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.2, specular = 1.2, scattering = 2, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 8}, + lifetime = 0, sustain = 0, animtype = 0}, }, fusionglow2 = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = -55, posz = 0, radius = 112, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 82, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -2, g = 1, b = 1, a = 0.3, - modelfactor = 0.3, specular = 1.2, scattering = 1.5, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fusionorb = { - lightType = 'point', - pieceName = 'emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 80, - r = 1, g = 1, b = 1, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.1, specular = 1.2, scattering = 1.5, lensflare = 5, + lifetime = 0, sustain = 0, animtype = 0}, }, + -- fusionorb = { + -- lightType = 'point', + -- pieceName = 'emit', + -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 28, + -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, + -- r = 1, g = 1, b = 1, a = 0.2, + -- modelfactor = 0.1, specular = 1, scattering = 6, lensflare = 10, + -- lifetime = 0, sustain = 0, animtype = 0}, + -- }, }, ['resourcecheat'] = { fusionglow = { @@ -20563,7 +14833,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.1, specular = 0.66, scattering = 1, lensflare = 5, - lifetime = 0, sustain = 0, selfshadowing = 8}, + lifetime = 0, sustain = 0, animtype = 0}, }, fusionorb = { lightType = 'point', @@ -20572,54 +14842,45 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.2, modelfactor = 0.1, specular = 1, scattering = 9, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armzeus'] = { eyes = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 4.3, posz = 10, radius = 11, - color2r = 0.15, color2g = 0.15, color2b = 0.05, colortime = -1, - r = 1, g = 1, b = 0.5, a = 0.25, + lightConfig = { posx = 0, posy = 4.3, posz = 9.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.065, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 4.3, posz = 3, radius = 60, - dirx = 0, diry = -0.08, dirz = 1, theta = 0.7, - r = 1, g = 1, b = 0.89, a = 0.3, - modelfactor = -0.5, specular = -0.3, scattering = 2.5, lensflare = 1.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, weaponglow = { lightType = 'point', pieceName = 'gun_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 9, - color2r = 0.4, color2g = 0.7, color2b = 1.2, colortime = 30, + color2r = 0.40000001, color2g = 0.69999999, color2b = 1.20000005, colortime = 30, r = 0.2, g = 0.5, b = 1, a = 0.6, modelfactor = 0.1, specular = 0.75, scattering = 1.2, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, weaponspark = { lightType = 'point', pieceName = 'spark_emit', lightConfig = { posx = 0, posy = 1, posz = 0, radius = 55, color2r = 0, color2g = 0, color2b = 0, colortime = 2, - r = 1, g = 1, b = 1, a = 0.85, + r = 1, g = 1, b = 1, a = 0.85000002, modelfactor = 0.1, specular = 0.75, scattering = 0.2, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backpackglow = { lightType = 'point', pieceName = 'static_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 10, - color2r = 0.4, color2g = 0.7, color2b = 1.2, colortime = 30, - r = 0.2, g = 0.5, b = 1, a = 0.65, + color2r = 0.40000001, color2g = 0.69999999, color2b = 1.20000005, colortime = 30, + r = 0.2, g = 0.5, b = 1, a = 0.65000001, modelfactor = 0.1, specular = 0.75, scattering = 2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armclaw'] = { @@ -20630,7 +14891,7 @@ local unitLights = { color2r = 0.40000001, color2g = 0.69999999, color2b = 1.20000005, colortime = 30, r = 0.2, g = 0.5, b = 1, a = 0.65, modelfactor = 0.1, specular = 0.75, scattering = 1.5, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, weaponspark = { lightType = 'point', @@ -20639,7 +14900,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 2, r = 0.6, g = 0.8, b = 1, a = 0.70, modelfactor = 0.1, specular = 0.05, scattering = 0.2, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armyork'] = { @@ -20650,7 +14911,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -20659,7 +14920,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmanni'] = { @@ -20667,58 +14928,28 @@ local unitLights = { lightType = 'point', pieceName = 'sleeve', lightConfig = { posx = -5, posy = 23, posz = -6, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -2.0, - r = 1, g = 1, b = 0.2, a = 0.7, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - zoomlight = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 7.5, posz = 19, radius = 18, - dirx = 0, diry = 0, dirz = 0.5, theta = -10, - color2r = -1.0, color2g = -1.0, color2b = -1.0, colortime = 60, - r = 0.1, g = 0.3, b = 1.2, a = 2.5, - modelfactor = 1.7, specular = 0.8, scattering = 0.4, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - zoomlightglow = { - lightType = 'point', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 8.5, posz = 19, radius = 4, - dirx = 0, diry = 0, dirz = 0.5, theta = -10, - color2r = -1, color2g = -1, color2b = -1, colortime = 60, - r = 1, g = 1, b = 2, a = 3, - modelfactor = 1.7, specular = 0.8, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 15, posz = 5, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.2, g = 1, b = 0.2, a = 0.4, - modelfactor = 0.2, specular = 0.2, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0.2, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'sleeve', - lightConfig = { posx = -6, posy = 7.5, posz = 14, radius = 400, - dirx = 0, diry = 0, dirz = 1, theta = 0.07, - color2r = 0.8, color2g = 0.8, color2b = 0.8, colortime = -1.0, -- whiten with texture anim pulsing - r = 1, g = 1, b = 0.8, a = 0.25, - modelfactor = 0, specular = 1, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 14, posz = 5, radius = 26, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = -6, posy = 8, posz = 14, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5.5, posy = 8, posz = 12, radius = 15, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armlatnk'] = { @@ -20729,7 +14960,7 @@ local unitLights = { color2r = 0.40000001, color2g = 0.69999999, color2b = 1.20000005, colortime = 30, r = 0.2, g = 0.5, b = 1, a = 0.6, modelfactor = 0.1, specular = 0.75, scattering = 1, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', @@ -20738,7 +14969,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', @@ -20747,7 +14978,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -20756,7 +14987,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 6.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -20765,7 +14996,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 6.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsptk'] = { @@ -20776,7 +15007,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, body = { lightType = 'point', @@ -20785,7 +15016,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.1, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -20794,7 +15025,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -20803,7 +15034,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -20812,7 +15043,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsptkt4'] = { @@ -20823,7 +15054,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, body = { lightType = 'point', @@ -20832,7 +15063,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.1, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -20841,7 +15072,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -20850,7 +15081,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -20859,7 +15090,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 1, a = 0.07, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armspid'] = { @@ -20870,7 +15101,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, emplight = { lightType = 'point', @@ -20879,7 +15110,7 @@ local unitLights = { color2r = 0.3, color2g = 0.3, color2b = 0.7, colortime = 100, r = 0.85, g = 0.85, b = 1.3, a = 0.3, modelfactor = 0.2, specular = 0.3, scattering = 2, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, empblast = { lightType = 'point', @@ -20888,7 +15119,7 @@ local unitLights = { color2r = 0.3, color2g = 0.3, color2b = 0.7, colortime = 1.5, r = 0.85, g = 0.85, b = 1.1, a = 0.2, modelfactor = 0.2, specular = 0.3, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, eyes = { lightType = 'point', @@ -20897,7 +15128,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.08, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, body = { lightType = 'point', @@ -20906,63 +15137,54 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, r = 1, g = 1, b = 0.3, a = 0.075, modelfactor = 0.4, specular = 0.8, scattering = 1.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armjeth'] = { eyes = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 14.5, posz = 5.5, radius = 3.1, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 14.5, posz = 4.2, radius = 8, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.09, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 12, posz = -8, radius = 5, - color2r = 1, color2g = 1, color2b = 0.3, colortime = -1.5, - r = 1.2, g = 1, b = 0.3, a = 0.8, - modelfactor = 0.4, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 12, posz = -8, radius = 10, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.09, + modelfactor = 0.4, specular = 0.8, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 7.5, posz = 9, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.9, - modelfactor = 0.3, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5.5, posz = 9, radius = 14, + color2r = 1, color2g = 1, color2b = 0.3, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.09, + modelfactor = 0.4, specular = 0.8, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, arm1 = { lightType = 'point', pieceName = 'lturret', - lightConfig = { posx = 1.5, posy = 0, posz = 8, radius = 3, + lightConfig = { posx = 1.5, posy = 0, posz = 8, radius = 12, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.4, specular = 0.8, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.09, + modelfactor = 0.4, specular = 0.8, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, arm2 = { lightType = 'point', pieceName = 'rturret', - lightConfig = { posx = -1.5, posy = 0, posz = 8, radius = 3, + lightConfig = { posx = -1.5, posy = 0, posz = 8, radius = 12, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 1, b = 1, a = 0.7, - modelfactor = 0.4, specular = 0.8, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 12, posz = 0, radius = 300, - dirx = 0, diry = 0.5, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.28, colortime = -1.5, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.09, + modelfactor = 0.4, specular = 0.8, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfboy'] = { @@ -20973,7 +15195,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.075, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topfront1 = { lightType = 'point', @@ -20982,7 +15204,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.075, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topfront2 = { lightType = 'point', @@ -20991,7 +15213,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.075, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', @@ -21000,7 +15222,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 1, a = 0.075, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -21009,7 +15231,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.075, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -21018,7 +15240,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.1, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armfast'] = { @@ -21029,7 +15251,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.09, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -21038,7 +15260,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', @@ -21047,7 +15269,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.09, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armscab'] = { @@ -21058,7 +15280,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.11, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, unstocked = { lightType = 'point', @@ -21068,7 +15290,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = 2, g = 0.8, b = 0, a = 0.8, modelfactor = 0.1, specular = 0.3, scattering = 0.55, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, stocked = { @@ -21079,7 +15301,7 @@ local unitLights = { color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, r = 2, g = 0.8, b = 0, a = 0.75, modelfactor = -0.1, specular = 0.1, scattering = 0.3, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { @@ -21089,7 +15311,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.11, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -21098,7 +15320,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.11, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmav'] = { @@ -21109,7 +15331,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, visor1 = { lightType = 'point', @@ -21118,7 +15340,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.1, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, visor2 = { lightType = 'point', @@ -21127,557 +15349,205 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.12, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armrock'] = { barrel = { lightType = 'point', pieceName = 'lmisspod', - lightConfig = { posx = 3, posy = 0, posz = 4.5, radius = 9, - color2r = 1, color2g = 1, color2b = 0.25, colortime = -1, - r = 1.2, g = 1, b = 0.25, a = 0.9, - modelfactor = 0.4, specular = 0.8, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3, posy = -1, posz = 4.5, radius = 14, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.09, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -2, posy = 11.5, posz = 0, radius = 9, + lightConfig = { posx = -3.2, posy = 12.5, posz = 0, radius = 13, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 1, b = 1, a = 0.8, + r = 1, g = 1, b = 1, a = 0.08, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - shieldlight = { + top2 = { lightType = 'point', - pieceName = 'rshield', - lightConfig = { posx = -2.5, posy = 11, posz = 0, radius = 5.5, + pieceName = 'torso', + lightConfig = { posx = 3.2, posy = 12.5, posz = 0, radius = 13, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.4, specular = 0.4, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- - lightType = 'cone', - pieceName = 'lbarrel', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 50, - dirx = 0, diry = -1, dirz = 0.01, theta = 0.14, - r = 1, g = 1, b = 0.89, a = 0.35, colortime = -2.5, - modelfactor = -1, specular = -1, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.08, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- top2 = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 3.2, posy = 12.5, posz = 0, radius = 13, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.08, - -- modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['coramph'] = { front1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 4, posy = -6.6, posz = 7.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 1, b = 0.25, a = 0.9, - modelfactor = 0.4, specular = 0.8, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4, posy = -6.6, posz = 7.5, radius = 11, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.09, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -4, posy = -6.6, posz = 7.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 1, b = 0.25, a = 0.9, - modelfactor = 0.4, specular = 0.8, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4, posy = -6.6, posz = 7.5, radius = 11, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.09, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 8.8, posy = 10, posz = -5, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8.8, posy = 12, posz = -5, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -8.8, posy = 10, posz = -5, radius = 2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -8.8, posy = 12, posz = -5, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armamph'] = { top = { lightType = 'point', pieceName = 'pelvis', - lightConfig = { posx = 0, posy = 2, posz = -5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - frontweapon = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 2.7, posz = 9.5, radius = 4, - color2r = -3, color2g = -3, color2b = -3, colortime = 22, - r = 1.2, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight1 = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = -7.9, posy = 8.9, posz = 1.3, radius = 3.1, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalight2 = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 8, posy = 8.9, posz = 1.3, radius = 3.1, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = -8, posy = 8.5, posz = 0, radius = 300, - dirx = 0, diry = 0.5, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.28, colortime = -1.5, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 1, posz = -3, radius = 14, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armaak'] = { top = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 3.5, posz = 2.3, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backpackr = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = -3.7, posy = 2.0, posz = -10.9, radius = 3.1, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backpackl = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 3.5, posy = 2.0, posz = -10.9, radius = 3.1, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 0, posy = -2, posz = -4, radius = 300, - dirx = 0, diry = 0.5, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.28, colortime = -1.5, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 3.5, posz = 2.3, radius = 16, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.12, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coraak'] = { top = { lightType = 'point', pieceName = 'flakgun', - lightConfig = { posx = 0, posy = 4, posz = -3, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.25, a = 0.8, - modelfactor = 0.4, specular = 0.8, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4, posz = -3, radius = 13, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 11, posz = 7, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.8, specular = 0.2, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 5, posz = 0, radius = 300, colortime = -1.5, - dirx = 0, diry = 0.7, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corsent'] = { - -- top = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 0, posy = 4, posz = -3, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.2, g = 1, b = 0.25, a = 0.8, - -- modelfactor = 0.4, specular = 0.8, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - eyes = { - lightType = 'point', - pieceName = 'guns', - lightConfig = { posx = 0, posy = 4, posz = 3, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.8, specular = 0.2, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'guns', - lightConfig = { posx = 0, posy = 0, posz = -2, radius = 150, colortime = -1.5, - dirx = 0, diry = 0.2, dirz = 1, theta = 0.16, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11, posz = 7, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armflea'] = { body = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 11, posz = -1.5, radius = 7, - color2r = 1, color2g = 1, color2b = 0.25, colortime = -1.5, - r = 1.2, g = 1, b = 0.25, a = 0.6, + lightConfig = { posx = 0, posy = 11, posz = -1.5, radius = 14, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.09, modelfactor = 0.5, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- nanoflashtop = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 12.6, posz = -4.8, radius = 12, - -- color2r = -5, color2g = -5, color2b = -5, colortime = -1, - -- r = -1, g = 1, b = 1, a = 0.71, - -- modelfactor = 0.4, specular = 0.4, scattering = 1.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - nanoflashbot = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 9.5, posz = 10.5, radius = 6, - color2r = -5, color2g = -5, color2b = -5, colortime = -1, - r = -1, g = 1, b = 1, a = 0.75, - modelfactor = 0.7, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corpyro'] = { flamelight = { lightType = 'point', pieceName = 'lloarm', - lightConfig = { posx = 0, posy = -0.8, posz = 12, radius = 14, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 5, - r = 0.95, g = 0.66, b = 0.07, a = 0.6, - modelfactor = 0.4, specular = 0.9, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 4}, - }, - flamebright = { - lightType = 'point', - pieceName = 'lloarm', - lightConfig = { posx = 0, posy = -1.4, posz = 18, radius = 8, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 7, - r = 0.95, g = 0.66, b = 0.07, a = 1.9, - modelfactor = 0.4, specular = 0.9, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -1.4, posz = 15, radius = 22, + color2r = 0.89999998, color2g = 0.5, color2b = 0.05, colortime = 5, + r = 0.95, g = 0.66, b = 0.07, a = 0.08, + modelfactor = 0.4, specular = 0.8, scattering = 1.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 3.8, posz = 6.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2.9, posz = 4.8, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack1 = { lightType = 'point', pieceName = 'backpack', - lightConfig = { posx = 0, posy = 8, posz = -4, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.75, a = 0.6, - modelfactor = 0.15, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 9, posz = -4, radius = 17, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.75, a = 0.04, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack2 = { lightType = 'point', pieceName = 'backpack', - lightConfig = { posx = -6, posy = 7, posz = -4, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.75, a = 0.6, - modelfactor = 0.15, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = 7, posz = -4, radius = 17, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.75, a = 0.04, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, backpack3 = { lightType = 'point', pieceName = 'backpack', - lightConfig = { posx = 6, posy = 7, posz = -4, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.75, a = 0.6, - modelfactor = 0.15, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corsumo'] = { - eyesl = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 4, posy = 10.5, posz = 20, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.85, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesr = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = -4, posy = 10.5, posz = 20, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.85, - modelfactor = 0.4, specular = 0, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top = { - lightType = 'point', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 23.2, posz = -7, radius = 2, - color2r = -5, color2g = -5, color2b = -5, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.85, - modelfactor = 0.4, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtopfront = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -0.2, posy = 6.5, posz = 7.2, radius = 2.2, - dirx = 0, diry = 0, dirz = 1, theta = -1.6, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teambeambackl = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 6.3, posy = 2, posz = -7.5, radius = 2.8, - pos2x = 5.2, pos2y = 3.3, pos2z = -6.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.2, b = 0.2, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teambeambackr = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -6.3, posy = 2, posz = -7.5, radius = 2.8, - pos2x = -5.2, pos2y = 3.3, pos2z = -6.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 0.2, b = 0.2, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- teamtopbackl = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 5.5, posy = 2.5, posz = -7.2, radius = 3.5, - -- dirx = 0, diry = 1, dirz = 0, theta = -0.8, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = -1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- teamtopbackr = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = -5.5, posy = 2.5, posz = -7.2, radius = 3.5, - -- dirx = 0, diry = 1, dirz = 0, theta = -0.8, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = -1, g = 1, b = 1, a = 2, - -- modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'torso', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 10, posz = 7, radius = 95, colortime = -2, - dirx = 0, diry = -0.12, dirz = 1, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.25, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corsala'] = { - teamtopfront = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 7.5, posz = -0.5, radius = 1.6, - dirx = 0, diry = 0, dirz = 1, theta = -2.3, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = -1, g = 1, b = 1, a = 2, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightsourceright = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -10, posy = 7.7, posz = 15.2, radius = 1.4, - pos2x = -13, pos2y = 7.7, pos2z = 15.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightsourceleft = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 10, posy = 7.7, posz = 15.2, radius = 1.4, - pos2x = 13, pos2y = 7.7, pos2z = 15.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightl = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -11.5, posy = 6, posz = 10, radius = 35, colortime = -2, - dirx = 0, diry = -0.12, dirz = 1, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.25, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightr = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 11.5, posy = 6, posz = 10, radius = 35, colortime = -2, - dirx = 0, diry = -0.12, dirz = 1, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.25, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = 7, posz = -4, radius = 17, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.75, a = 0.04, + modelfactor = 0.15, specular = 0.5, scattering = 1.2, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - sleeve1point = { + }, + ['corsumo'] = { + eyes = { lightType = 'point', - pieceName = 'barrel1', - lightConfig = { posx = -2.2, posy = 0, posz = 16.4, radius = 2.2, - --dirx = 0, diry = 0, dirz = 1, theta = -2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = 1.2, g = 1, b = 0.2, a = 2.5, - modelfactor = 1.7, specular = 0.8, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'torso', + lightConfig = { posx = 0, posy = 10.5, posz = 19, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.18, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - sleeve2point = { + top = { lightType = 'point', - pieceName = 'barrel2', - lightConfig = { posx = -2.2, posy = 0, posz = 16.4, radius = 2.2, - --dirx = 0, diry = 0, dirz = 1, theta = -2.5, - color2r = 1.2, color2g = 1, color2b = 0.2, colortime = 60, - r = 0, g = 0, b = 0, a = 2.5, - modelfactor = 1.7, specular = 0.8, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'torso', + lightConfig = { posx = 0, posy = 23.5, posz = -7, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cortermite'] = { - -- eyes = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 2, posz = 4, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 0.2, b = 0.2, a = 0.9, - -- modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'head', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 65, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.8, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, eyes = { - lightType = 'beam', - pieceName = 'head', - lightConfig = { posx = -3, posy = 2, posz = 3.5, radius = 3, - pos2x = 3, pos2y = 2, pos2z = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- body = { - -- lightType = 'point', - -- pieceName = 'body', - -- lightConfig = { posx = 0, posy = 10, posz = -9, radius = 8, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = -1, - -- r = 0, g = 0, b = 0, a = 0.9, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - bodynrg = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 0, posy = 10, posz = -9, radius = 8, - color2r = 1.2, color2g = 1, color2b = 0.2, colortime = -1, - r = 0, g = 0, b = 0, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 1.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- sleeve1beam = { - -- lightType = 'beam', - -- pieceName = 'barrel1', - -- lightConfig = { posx = 0, posy = 1, posz = 2.2, radius = 1, - -- pos2x = 0, pos2y = 1, pos2z = 6.2, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 1.2, color2g = 1, color2b = 0.2, colortime = 45, - -- r = 0.3, g = 0.25, b = 0.1, a = 1.5, - -- modelfactor = 0.5, specular = 0.2, scattering = 3.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - sleeve1point = { - lightType = 'point', - pieceName = 'barrel1', - lightConfig = { posx = 0, posy = 0, posz = 9.4, radius = 2.2, - --dirx = 0, diry = 0, dirz = 1, theta = -2.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 60, - r = 1.2, g = 1, b = 0.2, a = 2.5, - modelfactor = 1.7, specular = 0.8, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sleeve2point = { lightType = 'point', - pieceName = 'barrel2', - lightConfig = { posx = -0.5, posy = 0, posz = 9.1, radius = 2.2, - --dirx = 0, diry = 0, dirz = 1, theta = -2.5, - color2r = 1.2, color2g = 1, color2b = 0.2, colortime = 60, - r = 0, g = 0, b = 0, a = 2.5, - modelfactor = 1.7, specular = 0.8, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'head', + lightConfig = { posx = 0, posy = 3, posz = 4, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.15, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corthermite'] = { @@ -21688,238 +15558,116 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.15, modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corstorm'] = { eyes = { lightType = 'point', - pieceName = 'pelvis', - lightConfig = { posx = 0, posy = 4.1, posz = 8.1, radius = 8, - color2r = 1, color2g = 0.2, color2b = 0.2, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.55, - modelfactor = 0.4, specular = 0.2, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'head', + lightConfig = { posx = 0, posy = 19.3, posz = 8.5, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topflashsingle = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 9.5, posz = 0, radius = 3.7, - dirx = 0, diry = 0, dirz = 1, theta = -4.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 1, b = 1, a = 2.9, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { - lightType = 'cone', - pieceName = 'launcher', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 75, - dirx = 0, diry = -0.03, dirz = 1, theta = 0.13, - r = 1, g = 1, b = 0.89, a = 0.5, - modelfactor = -1, specular = -1, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- topflash = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = 1, posy = 9, posz = 1.5, radius = 3.5, - -- dirx = 0, diry = 0, dirz = 1, theta = -3, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 1, b = 1, a = 1.9, - -- modelfactor = 0.4, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- topflash2 = { - -- lightType = 'point', - -- pieceName = 'turret', - -- lightConfig = { posx = -1, posy = 9, posz = 1.5, radius = 3.5, - -- dirx = 0, diry = 0, dirz = 1, theta = -3, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 1, b = 1, a = 1.9, - -- modelfactor = 0.4, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['cormort'] = { eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 0, posz = 12, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 1.3, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 12, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.13, + modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = -9.1, posz = 9, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - front2 = { - lightType = 'point', - pieceName = 'head', - lightConfig = { posx = 0, posy = -5.7, posz = 8.9, radius = 2.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.4, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -8, posz = 9.5, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.16, + modelfactor = 0.25, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 3, posy = -9, posz = -12, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 0.4, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3, posy = -9, posz = -12, radius = 8.5, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.09, + modelfactor = 0.25, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = -3, posy = -9, posz = -12, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 0.4, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3, posy = -9, posz = -12, radius = 8.5, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.09, + modelfactor = 0.25, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = -4.3, posy = 6.5, posz = -9, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.25, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.3, posy = 6.5, posz = -9, radius = 8.5, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, + modelfactor = 0.25, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 4.3, posy = 6.5, posz = -9, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.25, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 4.3, posy = 6.5, posz = -9, radius = 8.5, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, + modelfactor = 0.25, specular = 0.5, scattering = 0.9, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corthud'] = { - -- eyes = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 10, posz = 7.2, radius = 8, - -- color2r = 0.3, color2g = 0.03, color2b = 0.01, colortime = -1, - -- r = 1.2, g = 0.2, b = 0.2, a = 0.75, - -- modelfactor = 0.4, specular = 0.2, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - eyesfront = { - lightType = 'beam', - pieceName = 'torso', - lightConfig = { posx = -3, posy = 9.2, posz = 6.2, radius = 2, - pos2x = 3, pos2y = 9.2, pos2z = 6.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - armright = { - lightType = 'point', - pieceName = 'gun', - lightConfig = { posx = -8.3, posy = 2, posz = 11, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = -1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 1.8, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - armleft = { + eyes = { lightType = 'point', - pieceName = 'gun', - lightConfig = { posx = 8.3, posy = 2, posz = 11, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = -1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 1.8, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'torso', + lightConfig = { posx = 0, posy = 8.8, posz = 7.2, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.15, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsktl'] = { - -- eyes = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 2.2, posz = 11, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - eyesbeam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -3, posy = 1.4, posz = 9.7, radius = 3, - pos2x = 3, pos2y = 1.4, pos2z = 9.7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bodybomb = { + eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 0.5, posz = -9.5, radius = 5, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2.2, posz = 11, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corroach'] = { - -- baseback = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 6.5, posz = -6.5, radius = 6, - -- color2r = -3, color2g = -3, color2b = -3, colortime = -1, - -- r = 1.2, g = 1, b = 0.75, a = 0.4, - -- modelfactor = 0.15, specular = 0.5, scattering = 0.15, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - basefront = { + base = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6.5, posz = 2.2, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.15, specular = 0.5, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6, posz = -2.5, radius = 14, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.75, a = 0.08, + modelfactor = 0.15, specular = 0.5, scattering = 0.75, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4.5, posz = 7.2, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bodybomb = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 7.5, posz = -8.5, radius = 4, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 2, posz = -7, radius = 40, colortime = -1.5, - dirx = 0, diry = 0, dirz = 1, theta = 0.35, - r = 1, g = 1, b = 1, a = 0.45, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4.4, posz = 7.2, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legsnapper'] = { @@ -21930,7 +15678,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.75, a = 0.08, modelfactor = 0.95, specular = 0.5, scattering = 0.75, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -21939,7 +15687,7 @@ local unitLights = { color2r = 0.1, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.20, modelfactor = 0.6, specular = 0, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legca'] = { @@ -21950,7 +15698,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, mainthrust = { lightType = 'point', @@ -21959,7 +15707,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.35, modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, minithrusta = { lightType = 'point', @@ -21968,7 +15716,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.35, modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, minithrustb = { lightType = 'point', @@ -21977,7 +15725,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.35, modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -21986,7 +15734,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legatrans'] = { @@ -21997,7 +15745,7 @@ local unitLights = { dirx = 0, diry = -1, dirz = 0, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, rgThrust = { lightType = 'cone', @@ -22006,7 +15754,7 @@ local unitLights = { dirx = 0, diry = -1, dirz = 0, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lmainthrust = { @@ -22016,7 +15764,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, rmainthrust = { lightType = 'cone', @@ -22025,7 +15773,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lminithrust = { @@ -22035,7 +15783,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, rminithrust = { lightType = 'cone', @@ -22044,7 +15792,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, trieyes = { @@ -22054,7 +15802,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -22066,7 +15814,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, rthrust = { lightType = 'cone', @@ -22075,7 +15823,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lthrust = { @@ -22085,7 +15833,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legmos'] = { @@ -22096,7 +15844,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustMain = { lightType = 'cone', @@ -22105,7 +15853,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.33, g = 1, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legkam'] = { @@ -22116,7 +15864,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.33, g = 1, b = 0.33, a = 0.1, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb1 = { lightType = 'point', @@ -22125,7 +15873,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.6, modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, bomb2 = { lightType = 'point', @@ -22134,7 +15882,45 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.6, modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['legatorpbomber'] = { + thrustrightAJet = { + lightType = 'cone', + pieceName = 'rightAJet', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 0.33, g = 1, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrustrightBJet = { + lightType = 'cone', + pieceName = 'rightBJet', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 0.33, g = 1, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrustleftAJet = { + lightType = 'cone', + pieceName = 'leftAJet', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 30, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 0.33, g = 1, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, + }, + thrustleftBJet = { + lightType = 'cone', + pieceName = 'leftBJet', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 20, + dirx = 0, diry = 0, dirz = -1, theta = 0.8, + r = 0.33, g = 1, b = 0.33, a = 0.1, + modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legaheattank'] = { @@ -22146,7 +15932,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 60, r = 0.88, g = 0.83, b = 0.2, a = 0.4, modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, gunglow2 = { lightType = 'point', @@ -22155,7 +15941,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 60, r = 0.88, g = 0.83, b = 0.2, a = 0.4, modelfactor = 0.4, specular = 0.5, scattering = 2.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legionnaire'] = { @@ -22166,7 +15952,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -22175,7 +15961,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster3 = { lightType = 'point', @@ -22184,7 +15970,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusta = { lightType = 'point', @@ -22193,7 +15979,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legvenator'] = { @@ -22204,7 +15990,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -22213,7 +15999,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -22225,7 +16011,7 @@ local unitLights = { color2r = 0.3, color2g = 0.8, color2b = 0.8, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.04, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', @@ -22234,7 +16020,7 @@ local unitLights = { color2r = 1, color2g = 0.9, color2b = 0.2, colortime = 6, r = 0.88, g = 0.14, b = 0.14, a = 0.11, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -22243,7 +16029,7 @@ local unitLights = { color2r = 1, color2g = 0.9, color2b = 0.2, colortime = 7, r = 0.88, g = 0.14, b = 0.14, a = 0.11, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster3 = { lightType = 'point', @@ -22252,7 +16038,7 @@ local unitLights = { color2r = 1, color2g = 0.9, color2b = 0.2, colortime = 5, r = 0.88, g = 0.14, b = 0.14, a = 0.11, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustl = { lightType = 'point', @@ -22261,7 +16047,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.8, g = 1, b = 0.1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustr = { lightType = 'point', @@ -22270,7 +16056,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.8, g = 1, b = 0.1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustm = { lightType = 'point', @@ -22279,7 +16065,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.8, g = 1, b = 0.1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -22291,7 +16077,7 @@ local unitLights = { color2r = 0.3, color2g = 0.8, color2b = 0.8, colortime = 0, r = 1.0, g = 0.8, b = 0.1, a = 0.21, modelfactor = 0.4, specular = 0.5, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, beacon = { lightType = 'cone', @@ -22300,7 +16086,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.04, r = 0.9, g = 0.65, b = 0.15, a = 0.95, modelfactor = 0, specular = 1, scattering = 4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lp1 = { @@ -22310,7 +16096,7 @@ local unitLights = { dirx = 2, diry = 6, dirz = -2, theta = 0.67, r = 1, g = 1, b = 1, a = 0.30, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lp2 = { lightType = 'cone', @@ -22319,7 +16105,7 @@ local unitLights = { dirx = 2, diry = 6, dirz = 2, theta = 0.67, r = 1, g = 1, b = 1, a = 0.30, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lp3 = { lightType = 'cone', @@ -22328,7 +16114,7 @@ local unitLights = { dirx = -2, diry = 6, dirz = -2, theta = 0.67, r = 1, g = 1, b = 1, a = 0.30, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, lp4 = { lightType = 'cone', @@ -22337,39 +16123,21 @@ local unitLights = { dirx = -2, diry = 6, dirz = 2, theta = 0.67, r = 1, g = 1, b = 1, a = 0.30, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armvader'] = { - bodybombl = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = 1.3, posy = 3.0, posz = -6.5, radius = 1.3, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bodybombr = { - lightType = 'point', - pieceName = 'body', - lightConfig = { posx = -1.3, posy = 3.0, posz = -6.5, radius = 1.3, - color2r = -10, color2g = -10, color2b = -10, colortime = 25, - r = 1.2, g = 1, b = 0.2, a = 1.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, -- redlight = { -- lightType = 'point', -- pieceName = 'body', -- lightConfig = { posx = 0, posy = 3.7, posz = -7, radius = 3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, + -- color2r = 0, color2g = 0, color2b = 0, colortime = 15, -- r = 1.1, g = 0.15, b = 0.15, a = 1, -- modelfactor = 0.3, specular = 0.3, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- redlightbig = { -- lightType = 'point', @@ -22378,7 +16146,7 @@ local unitLights = { -- color2r = 0, color2g = 0, color2b = 0, colortime = 17, -- r = 1, g = 0.1, b = 0.1, a = 7, -- modelfactor = 2, specular = 0.3, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- redlightl = { -- lightType = 'point', @@ -22387,7 +16155,7 @@ local unitLights = { -- color2r = 0, color2g = 0, color2b = 0, colortime = 15, -- r = 1.1, g = 0.15, b = 0.15, a = 2, -- modelfactor = 0.3, specular = 0.3, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, -- redlightr = { -- lightType = 'point', @@ -22396,111 +16164,28 @@ local unitLights = { -- color2r = 0, color2g = 0, color2b = 0, colortime = 15, -- r = 1.1, g = 0.15, b = 0.15, a = 2, -- modelfactor = 0.3, specular = 0.3, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, -- }, }, ['armthor'] = { - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 15, posz = 18, radius = 88, - dirx = 0, diry = -0.06, dirz = 1, theta = 0.52, - r = 1, g = 1, b = 0.89, a = 0.32, - modelfactor = -0.5, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lightningweaponflashl = { - lightType = 'point', - pieceName = 'ltbarrel', - lightConfig = { posx = 0, posy = 0, posz = 10, radius = 5.6, - dirx = 0, diry = 0, dirz = 1, theta = -8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 1, b = 1.2, a = 2.0, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lightningweaponflashr = { - lightType = 'point', - pieceName = 'rtbarrel', - lightConfig = { posx = 0, posy = 0, posz = 10, radius = 5.6, - dirx = 0, diry = 0, dirz = 1, theta = -8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 1, b = 1.2, a = 1.0, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - emplightr = { - lightType = 'point', - pieceName = 'rempbarrel', - lightConfig = { posx = 0, posy = 0, posz = 8.5, radius = 2.5, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, - r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 1.2, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - emplightl = { - lightType = 'point', - pieceName = 'lempbarrel', - lightConfig = { posx = 0, posy = 0, posz = 8.5, radius = 2.5, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, - r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 1.2, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - emplightllauncher = { - lightType = 'point', - pieceName = 'llauncher', - lightConfig = { posx = 24, posy = 0, posz = 11.5, radius = 5, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, - r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 0.7, lensflare =15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - emplightrlauncher = { - lightType = 'point', - pieceName = 'rlauncher', - lightConfig = { posx = -24, posy = 0, posz = 11.5, radius = 5, - color2r = 0.15, color2g = 0.15, color2b = 0.35, colortime = 25, - r = 0.80, g = 0.85, b = 1.3, a = 0.8, - modelfactor = 0.2, specular = 0.3, scattering = 0.7, lensflare =15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - weaponwhiteglowrt = { - lightType = 'point', - pieceName = 'rtbarrel', - lightConfig = { posx = 0, posy = 0, posz = 11, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - weaponwhiteglowlt = { - lightType = 'point', - pieceName = 'ltbarrel', - lightConfig = { posx = 0, posy = 0, posz = 11, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, weaponglowrt = { lightType = 'point', pieceName = 'rtbarrel', - lightConfig = { posx = 0, posy = 0, posz = 18, radius = 13, + lightConfig = { posx = 0, posy = 0, posz = 12, radius = 13, color2r = 0.40000001, color2g = 0.69999999, color2b = 1.20000005, colortime = 30, r = 0.2, g = 0.5, b = 1, a = 0.8, modelfactor = 0.1, specular = 0.75, scattering = 1, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, + lifetime = 0, sustain = 0, animtype = 0}, + }, weaponglowlt = { lightType = 'point', pieceName = 'ltbarrel', - lightConfig = { posx = 0, posy = 0, posz = 18, radius = 13, + lightConfig = { posx = 0, posy = 0, posz = 12, radius = 13, color2r = 0.40000001, color2g = 0.69999999, color2b = 1.20000005, colortime = 30, r = 0.2, g = 0.5, b = 1, a = 0.8, modelfactor = 0.1, specular = 0.75, scattering = 1, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, weaponspark1 = { lightType = 'point', @@ -22509,7 +16194,7 @@ local unitLights = { color2r = 0.1, color2g = 0.1, color2b = 0.3, colortime = 2, r = 0.9, g = 0.9, b = 1, a = 0.75, modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, weaponspark2 = { lightType = 'point', @@ -22518,35 +16203,7 @@ local unitLights = { color2r = 0.1, color2g = 0.1, color2b = 0.3, colortime = 2, r = 0.9, g = 0.9, b = 1, a = 0.75, modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backenergybeam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -4, posy = 14, posz = -20, radius = 9, - pos2x = 4, pos2y = 14, pos2z = -20, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.3, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backenergy1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -10.5, posy = 16, posz = -25, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.3, g = 1, b = 0.2, a = 1.9, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backenergy2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 10.5, posy = 16, posz = -25, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.3, g = 1, b = 0.2, a = 1.9, - modelfactor = 0.3, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armthundt4'] = { @@ -22557,7 +16214,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 5, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.2, specular = 0.5, scattering = 1.2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, tipright = { lightType = 'point', @@ -22566,7 +16223,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 5, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.2, specular = 0.5, scattering = 1.2, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, front1 = { lightType = 'point', @@ -22575,7 +16232,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', @@ -22584,7 +16241,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', @@ -22593,7 +16250,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, engine1 = { lightType = 'point', @@ -22602,7 +16259,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, engine2 = { lightType = 'point', @@ -22611,7 +16268,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, engine3 = { lightType = 'point', @@ -22620,7 +16277,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, engine4 = { lightType = 'point', @@ -22629,7 +16286,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster = { lightType = 'point', @@ -22638,7 +16295,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 0, r = 0.88, g = 0.83, b = 0.2, a = 0.12, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrusteractive = { lightType = 'point', @@ -22647,7 +16304,7 @@ local unitLights = { --dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.3, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', @@ -22656,7 +16313,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.3, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', @@ -22665,7 +16322,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.3, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', @@ -22674,7 +16331,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.3, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', @@ -22683,19 +16340,10 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 1, g = 0.8, b = 0.33, a = 0.3, modelfactor = 0, specular = 1, scattering = 0.5, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsnipe'] = { - -- headreddot = { - -- lightType = 'cone', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 700, - -- dirx = 0, diry = 0, dirz = 1, theta = 0.16, - -- r = 2, g = 0, b = 0, a = 0.85, - -- modelfactor = 0.1, specular = 4, scattering = 2, lensflare = 4, - -- lifetime = 0, sustain = 0, selfshadowing = 2}, - -- }, sniperreddot = { lightType = 'cone', pieceName = 'laser', @@ -22703,7 +16351,7 @@ local unitLights = { dirx = 0, diry = 1, dirz = 0.0001, theta = 0.006, r = 2, g = 0, b = 0, a = 0.85, modelfactor = 0.1, specular = 4, scattering = 2, lensflare = 4, - lifetime = 0, sustain = 0, selfshadowing = 2}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', @@ -22712,7 +16360,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.12, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, headback = { lightType = 'point', @@ -22721,7 +16369,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.1, modelfactor = 0.4, specular = 0.8, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, body = { lightType = 'point', @@ -22730,7 +16378,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.12, modelfactor = 0.4, specular = 0.8, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corvamp'] = { @@ -22741,7 +16389,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', @@ -22750,7 +16398,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster3 = { lightType = 'point', @@ -22759,7 +16407,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrustb = { lightType = 'point', @@ -22768,72 +16416,54 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corveng'] = { eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 2.2, posz = 12.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - wingleft = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 26.2, posy = -1, posz = -4.5, radius = 5, - color2r = -25, color2g = -25, color2b = -25, colortime = 40, - r = 1.5, g = 0.2, b = 0.2, a = 1.0, - modelfactor = 0.8, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - wingright = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -26.2, posy = -1, posz = -4.5, radius = 5, - color2r = -25, color2g = -25, color2b = -25, colortime = 40, - r = 0.2, g = 1.5, b = 0.2, a = 1.0, - modelfactor = 0.8, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = 14, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, passivethruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3, posy = 0.5, posz = -13, radius = 4.4, + lightConfig = { posx = -3, posy = 0.5, posz = -13, radius = 9, color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 4, - r = 0.88, g = 0.83, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.88, g = 0.83, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, passivethruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3, posy = 0.5, posz = -13, radius = 4.4, + lightConfig = { posx = 3, posy = 0.5, posz = -13, radius = 9, color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 5, - r = 0.88, g = 0.83, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 0.88, g = 0.83, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'point', pieceName = 'thrust1', - lightConfig = { posx = 0, posy = 0, posz = -2, radius = 13, - color2r = 0.4, color2g = 0.3, color2b = 0.02, colortime = 14, - r = 1.3, g = 0.75, b = 0.2, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 21, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.75, b = 0.2, a = 0.28, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'point', pieceName = 'thrust2', - lightConfig = { posx = 0, posy = 0, posz = -2, radius = 13, - color2r = 0.4, color2g = 0.3, color2b = 0.02, colortime = 15, - r = 1.3, g = 0.75, b = 0.2, a = 0.8, - modelfactor = 0.6, specular = 0.2, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 21, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 0.75, b = 0.2, a = 0.28, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corseah'] = { @@ -22844,7 +16474,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -22853,7 +16483,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', @@ -22862,7 +16492,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', @@ -22871,7 +16501,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', @@ -22880,7 +16510,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', @@ -22889,7 +16519,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', @@ -22898,7 +16528,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcrwt4'] = { @@ -22909,7 +16539,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -22918,7 +16548,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', @@ -22927,7 +16557,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes4 = { lightType = 'point', @@ -22936,7 +16566,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes5 = { lightType = 'point', @@ -22945,7 +16575,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -22954,7 +16584,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 6, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -22963,7 +16593,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 7, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -22972,7 +16602,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 9, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', @@ -22981,7 +16611,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 8, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top5 = { lightType = 'point', @@ -22990,7 +16620,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 5, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top6 = { lightType = 'point', @@ -22999,7 +16629,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 6, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', @@ -23008,7 +16638,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', @@ -23017,7 +16647,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', @@ -23026,7 +16656,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', @@ -23035,7 +16665,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.8, r = 0.45, g = 0.7, b = 1, a = 0.3, modelfactor = 0.4, specular = 1, scattering = 0.3, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcrw'] = { @@ -23046,7 +16676,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -23055,7 +16685,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes3 = { lightType = 'point', @@ -23064,7 +16694,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.055, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes4 = { lightType = 'point', @@ -23073,7 +16703,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes5 = { lightType = 'point', @@ -23082,7 +16712,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -23091,7 +16721,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 6, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -23100,7 +16730,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.3, colortime = 7, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -23109,7 +16739,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 9, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', @@ -23118,7 +16748,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 8, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top5 = { lightType = 'point', @@ -23127,7 +16757,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 5, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top6 = { lightType = 'point', @@ -23136,7 +16766,7 @@ local unitLights = { color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 6, r = 1, g = 1, b = 0.3, a = 0.05, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', @@ -23145,7 +16775,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', @@ -23154,7 +16784,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', @@ -23163,7 +16793,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', @@ -23172,258 +16802,144 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcrwh'] = { - flamelight = { + eyes1 = { lightType = 'point', - pieceName = 'sleevef', - lightConfig = { posx = 0, posy = -1, posz = 14.2, radius = 5, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 7, - r = 0.95, g = 0.66, b = 0.07, a = 2.9, - modelfactor = 0.4, specular = 0.9, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- flamebright = { - -- lightType = 'point', - -- pieceName = 'flaref', - -- lightConfig = { posx = 0, posy = -1.4, posz = 14, radius = 16, - -- color2r = 0.6, color2g = 0.4, color2b = 0.05, colortime = 7, - -- r = 0.95, g = 0.66, b = 0.07, a = 3.9, - -- modelfactor = 0.4, specular = 0.9, scattering = 0.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - eyesfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -3, posy = 32, posz = 26.3, radius = 2, - pos2x = 3, pos2y = 32, pos2z = 26.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesfrontlow = { - lightType = 'beam', pieceName = 'base', - lightConfig = { posx = -3, posy = 24, posz = 48.3, radius = 2, - pos2x = 3, pos2y = 24, pos2z = 48.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 32, posz = 25, radius = 15, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flashfront1 = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -3, posy = 31, posz = 21, radius = 2.8, - dirx = 0, diry = 0, dirz = 1, theta = -5.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6, posy = 32, posz = 18, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flashfront2 = { + eyes3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3, posy = 31, posz = 21, radius = 2.8, - dirx = 0, diry = 0, dirz = 1, theta = -5.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6, posy = 32, posz = 18, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - teamflashantenna1 = { + eyes4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4.1, posy = 36.5, posz = -57.8, radius = 5.3, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 2.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5.5, posy = 24, posz = 51, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - yellowflashantenna1 = { + eyes5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4.1, posy = 36.5, posz = -57.8, radius = 4.3, - color2r = -20, color2g = -20, color2b = -20, colortime = 60, - r = 1.1, g = 0.9, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa1 = { - lightType = 'point', - pieceName = 'sleeveaa', - lightConfig = { posx = -4.5, posy = 4.0, posz = 2.2, radius = 3, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - turretaa2 = { - lightType = 'point', - pieceName = 'sleeveaa', - lightConfig = { posx = 4.5, posy = 4.0, posz = 2.2, radius = 3, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5.5, posy = 24, posz = 51, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 32, posz = 25, radius = 15, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6, posy = 32, posz = 18, radius = 18, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.055, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6, posy = 32, posz = 18, radius = 18, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.055, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -5.5, posy = 24, posz = 51, radius = 16, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes5 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 5.5, posy = 24, posz = 51, radius = 8, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.8, - -- modelfactor = 0.4, specular = 0, scattering = 0.2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - flashenergy1 = { + top1_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -14.6, posy = 31, posz = -7, radius = 5.2, - dirx = 0, diry = 0, dirz = 1, theta = -15.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1.1, g = 0.9, b = 0.2, a = 4.5, - modelfactor = 0.8, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 35, posz = 7, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 8, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flashenergy2 = { + top1_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 14.6, posy = 31, posz = -7, radius = 5.2, - dirx = 0, diry = 0, dirz = 1, theta = -15.0, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1.1, g = 0.9, b = 0.2, a = 4.5, - modelfactor = 0.8, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 35, posz = 0, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 7, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15, posy = 35, posz = 7, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 35, posz = -7, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 6, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15, posy = 35, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 35, posz = -15, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.3, colortime = 7, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 15, posy = 35, posz = -7, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.9, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 15, posy = 35, posz = -15, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top5 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 15, posy = 35, posz = -22, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 35, posz = -22, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 9, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top6 = { + top4_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = 35, posz = 7, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 35, posz = 7, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 9, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top7 = { + top4_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = 35, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 35, posz = 0, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 7, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top8 = { + top4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = 35, posz = -7, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.9, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 35, posz = -7, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 8, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top9 = { + top5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = 35, posz = -15, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 35, posz = -15, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 5, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top10 = { + top6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -15, posy = 35, posz = -22, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.2, g = 1, b = 0.3, a = 0.5, - modelfactor = 0.3, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 35, posz = -22, radius = 32, + color2r = 0.7, color2g = 0.7, color2b = 0.25, colortime = 6, + r = 1, g = 1, b = 0.3, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust1 = { lightType = 'cone', @@ -23432,7 +16948,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust2 = { lightType = 'cone', @@ -23441,7 +16957,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust3 = { lightType = 'cone', @@ -23450,7 +16966,7 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, thrust4 = { lightType = 'cone', @@ -23459,36 +16975,18 @@ local unitLights = { dirx = 0, diry = 0, dirz = -1, theta = 0.74, r = 0.45, g = 0.7, b = 1, a = 0.24, modelfactor = 0.4, specular = 1, scattering = 0.5, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armwin'] = { - light1 = { - lightType = 'point', - pieceName = 'emit', - lightConfig = { posx = -4, posy = 0, posz = 0, radius = 9, - color2r = 0.2, color2g = 0.08, color2b = 0.05, colortime = -2, - r = 1, g = 0.8, b = 0.2, a = 0.44, - modelfactor = 0.5, specular = 1.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light2 = { + light = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 4, posy = 0, posz = 0, radius = 9, - color2r = 0.2, color2g = 0.08, color2b = 0.05, colortime = -2, - r = 1, g = 0.8, b = 0.2, a = 0.44, - modelfactor = 0.5, specular = 1.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - antennalight = { - lightType = 'point', - pieceName = 'turbine', - lightConfig = { posx = 0, posy = 2, posz = 9.5, radius = 8, - color2r = -28, color2g = -28, color2b = -28, colortime = -1.5, - r = -1, g = 0.8, b = 0.8, a = 2.0, - modelfactor = 0.3, specular = 0.5, scattering = 0.05, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 16, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.2, + modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armwint2'] = { @@ -23499,292 +16997,122 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.2, modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corwin'] = { - antennalight = { - lightType = 'point', - pieceName = 'cradle', - lightConfig = { posx = 0, posy = 62, posz = -7.6, radius = 10, - color2r = -25, color2g = -25, color2b = -25, colortime = -1, - r = 1.5, g = 1.5, b = 1.5, a = 1.0, - modelfactor = 0.5, specular = 0.4, scattering = 0.03, lensflare = 7, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - antennalight2 = { - lightType = 'point', - pieceName = 'cradle', - lightConfig = { posx = 0, posy = 54, posz = 2.7, radius = 4, - color2r = -100, color2g = -4, color2b = -4, colortime = -1, - r = 0, g = 0, b = 0, a = 1.0, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'cradle', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 50, posz = -6, radius = 55, - dirx = 0, diry = -1, dirz = 0.01, theta = 0.22, - r = 1, g = 1, b = 0.89, a = 0.45, colortime = -1.5, - modelfactor = 0.3, specular = 0.2, scattering = 2.2, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corestor'] = { top = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -2.5, - r = 1.2, g = 0.86, b = 0.25, a = 1.2, + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 24, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.18, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { - lightType = 'beam', + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = -11.5, posy = -26, posz = 19.5, radius = 8, - pos2x = -9.1, pos2y = -10, pos2z = 15.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.44, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -24, posy = -19, posz = 0, radius = 30, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { - lightType = 'beam', + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = -23.5, posy = -26, posz = 0, radius = 8, - pos2x = -16.1, pos2y = -10, pos2z = 0, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.44, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 24, posy = -19, posz = 0, radius = 30, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side3 = { - lightType = 'beam', + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = -11.5, posy = -26, posz = -19.5, radius = 8, - pos2x = -9.1, pos2y = -10, pos2z = -15.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.44, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = -19, posz = -20, radius = 30, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side4 = { - lightType = 'beam', + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 11.5, posy = -26, posz = 19.5, radius = 8, - pos2x = 9.1, pos2y = -10, pos2z = 15.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.44, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12, posy = -19, posz = -20, radius = 30, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side5 = { - lightType = 'beam', + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 23.5, posy = -26, posz = 0, radius = 8, - pos2x = 16.1, pos2y = -10, pos2z = 0, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.44, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = -19, posz = 20, radius = 30, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side6 = { - lightType = 'beam', + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 11.5, posy = -26, posz = -19.5, radius = 8, - pos2x = 9.1, pos2y = -10, pos2z = -15.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.44, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- side1 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -24, posy = -19, posz = 0, radius = 30, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side2 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 24, posy = -19, posz = 0, radius = 30, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side3 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -12, posy = -19, posz = -20, radius = 30, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side4 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 12, posy = -19, posz = -20, radius = 30, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side5 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -12, posy = -19, posz = 20, radius = 30, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side6 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 12, posy = -19, posz = 20, radius = 30, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, + lightConfig = { posx = 12, posy = -19, posz = 20, radius = 30, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, }, ['coruwfus'] = { light = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 30, posz = 0, radius = 43, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.86, b = 0.25, a = 2.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 17, posz = 0, radius = 47, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.5, + modelfactor = 0.1, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coruwmmm'] = { - botright = { - lightType = 'beam', - pieceName = 'emit', - lightConfig = { posx = -25, posy = 0, posz = -21, radius = 7, - pos2x = -21, pos2y = 0, pos2z = -25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.85, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - botleft = { - lightType = 'beam', - pieceName = 'emit', - lightConfig = { posx = 25, posy = 0, posz = -21, radius = 7, - pos2x = 21, pos2y = 0, pos2z = -25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.85, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topright = { - lightType = 'beam', - pieceName = 'emit', - lightConfig = { posx = -25, posy = 0, posz = 21, radius = 7, - pos2x = -21, pos2y = 0, pos2z = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.85, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - topleft = { - lightType = 'beam', + side1 = { + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 25, posy = 0, posz = 21, radius = 7, - pos2x = 21, pos2y = 0, pos2z = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.85, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - - botrightstop = { - lightType = 'beam', - pieceName = 'stop', - lightConfig = { posx = -25, posy = 0, posz = -21, radius = 7, - pos2x = -21, pos2y = 0, pos2z = -25, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 0, b = 0, a = 1.25, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -24, posy = 0, posz = -24, radius = 40, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.085, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - botleftstop = { - lightType = 'beam', - pieceName = 'stop', - lightConfig = { posx = 25, posy = 0, posz = -21, radius = 7, - pos2x = 21, pos2y = 0, pos2z = -25, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 0, b = 0, a = 1.25, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + side2 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 24, posy = 0, posz = -24, radius = 40, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.085, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - toprightstop = { - lightType = 'beam', - pieceName = 'stop', - lightConfig = { posx = -25, posy = 0, posz = 21, radius = 7, - pos2x = -21, pos2y = 0, pos2z = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 0, b = 0, a = 1.25, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + side3 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = -24, posy = 0, posz = 24, radius = 40, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.085, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topleftstop = { - lightType = 'beam', - pieceName = 'stop', - lightConfig = { posx = 25, posy = 0, posz = 21, radius = 7, - pos2x = 21, pos2y = 0, pos2z = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = 30, - r = 1.2, g = 0, b = 0, a = 1.25, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + side4 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 24, posy = 0, posz = 24, radius = 40, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.86, b = 0.25, a = 0.085, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- side1 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -24, posy = 0, posz = -24, radius = 10, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.085, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side2 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 24, posy = 0, posz = -24, radius = 10, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.085, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side3 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -24, posy = 0, posz = 24, radius = 40, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.085, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side4 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 24, posy = 0, posz = 24, radius = 40, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.86, b = 0.25, a = 0.085, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['coruwes'] = { light = { @@ -23794,195 +17122,66 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, r = 1, g = 0.86, b = 0.25, a = 0.5, modelfactor = 0.1, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coruwadves'] = { light = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 34, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 0.86, b = 0.25, a = 0.5, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 64, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.5, modelfactor = 0.1, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = 32, posz = 0, radius = 69, - dirx = -1, diry = -0.75, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = 32, posz = 0, radius = 69, - dirx = 0, diry = -0.75, dirz = -1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side3cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = 32, posz = 0, radius = 69, - dirx = 1, diry = -0.75, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side4cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = 32, posz = 0, radius = 69, - dirx = 0, diry = -0.75, dirz = 1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.2, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armestor'] = { top = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.86, b = 0.25, a = 0.8, - modelfactor = 0.3, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 35, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.18, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topconstant = { + side1 = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 12, - color2r = 0.6, color2g = 0.48, color2b = 0.16, colortime = 25, - r = 1, g = 0.86, b = 0.25, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14, posy = -17, posz = 14, radius = 37, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side1cone = { - lightType = 'cone', - pieceName = 'emit', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = -1, diry = -1.5, dirz = -1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2cone = { - lightType = 'cone', - pieceName = 'emit', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = 1, diry = -1.5, dirz = -1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side3cone = { - lightType = 'cone', - pieceName = 'emit', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = 1, diry = -1.5, dirz = 1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side4cone = { - lightType = 'cone', + side2 = { + lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = -1, diry = -1.5, dirz = 1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- side1 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 14, posy = -17, posz = 14, radius = 37, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side2 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -14, posy = -17, posz = 14, radius = 37, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side3 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 14, posy = -17, posz = -14, radius = 37, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side4 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -14, posy = -17, posz = -14, radius = 37, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['armmstor'] = { - mid = { + lightConfig = { posx = -14, posy = -17, posz = 14, radius = 37, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + side3 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 20, posz = 0, radius = 25, - color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 40, - r = 1, g = 1, b = 1, a = 2.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit', + lightConfig = { posx = 14, posy = -17, posz = -14, radius = 37, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- top = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 35, posz = 0, radius = 25, - -- color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 40, - -- r = 1, g = 1, b = 1, a = 2.8, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['cormstor'] = { - mid = { + side4 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = -6, posz = 0, radius = 28, - color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 40, - r = 1, g = 1, b = 1, a = 2.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit', + lightConfig = { posx = -14, posy = -17, posz = -14, radius = 37, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- top = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 35, posz = 0, radius = 25, - -- color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 40, - -- r = 1, g = 1, b = 1, a = 2.8, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armuwmex'] = { light = { @@ -23992,7 +17191,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.15, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armuwes'] = { @@ -24003,7 +17202,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, r = 1, g = 0.86, b = 0.25, a = 0.2, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -24012,7 +17211,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -24021,160 +17220,100 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 19, posy = -25, posz = -19, radius = 28, - color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, - r = 1, g = 1, b = 0.25, a = 0.09, - modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 19, posy = -25, posz = -19, radius = 28, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + base4 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = -19, posy = -25, posz = -19, radius = 28, + color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, + r = 1, g = 1, b = 0.25, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armuwadves'] = { + light1 = { + lightType = 'point', + pieceName = 'emit1', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 40, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.16, + modelfactor = 0.3, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light2 = { + lightType = 'point', + pieceName = 'emit2', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 40, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.16, + modelfactor = 0.3, specular = 0.5, scattering = 0.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + side1 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 14, posy = 21, posz = 24, radius = 43, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + side2 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = -14, posy = 21, posz = 24, radius = 43, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - base4 = { + side3 = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = -19, posy = -25, posz = -19, radius = 28, - color2r = 1, color2g = 1, color2b = 0.25, colortime = 0, - r = 1, g = 1, b = 0.25, a = 0.09, - modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14, posy = 21, posz = -24, radius = 43, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['armuwadves'] = { - light1 = { + side4 = { lightType = 'point', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.86, b = 0.25, a = 0.8, - modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit', + lightConfig = { posx = -14, posy = 21, posz = -24, radius = 43, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - light2 = { + side5 = { lightType = 'point', - pieceName = 'emit2', - lightConfig = { posx = 0, posy = 1, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.86, b = 0.25, a = 0.8, - modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = -1, diry = -1.5, dirz = -1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2cone = { - lightType = 'cone', - pieceName = 'emit1', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = 1, diry = -1.5, dirz = -1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side3cone = { - lightType = 'cone', - pieceName = 'emit2', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = 1, diry = -1.5, dirz = 1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side4cone = { - lightType = 'cone', - pieceName = 'emit2', - lightConfig = { posx = 0, posy = -2, posz = 0, radius = 52, - dirx = -1, diry = -1.5, dirz = 1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side5cone = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = -2, posy = 37, posz = 0, radius = 52, - dirx = -1, diry = -1.5, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'emit', + lightConfig = { posx = 14, posy = 21, posz = 0, radius = 45, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side6cone = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 2, posy = 37, posz = 0, radius = 52, - dirx = 1, diry = -1.5, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.75, a = 0.8, - modelfactor = 0.5, specular = 0.2, scattering = 4.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + side6 = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = -14, posy = 21, posz = 0, radius = 45, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.075, + modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- side1 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 14, posy = 21, posz = 24, radius = 43, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side2 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -14, posy = 21, posz = 24, radius = 43, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side3 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 14, posy = 21, posz = -24, radius = 43, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side4 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -14, posy = 21, posz = -24, radius = 43, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side5 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = 14, posy = 21, posz = 0, radius = 45, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side6 = { - -- lightType = 'point', - -- pieceName = 'emit', - -- lightConfig = { posx = -14, posy = 21, posz = 0, radius = 45, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 1, g = 0.86, b = 0.25, a = 0.075, - -- modelfactor = 0.3, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armbrtha'] = { base1 = { @@ -24184,7 +17323,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -24193,7 +17332,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -24202,7 +17341,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -24211,7 +17350,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', @@ -24220,7 +17359,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', @@ -24229,7 +17368,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -24238,7 +17377,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -24247,7 +17386,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', @@ -24256,7 +17395,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -24265,7 +17404,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -24274,7 +17413,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', @@ -24283,7 +17422,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topmid1 = { lightType = 'point', @@ -24292,7 +17431,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topmid2 = { lightType = 'point', @@ -24301,7 +17440,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topmid3 = { lightType = 'point', @@ -24310,7 +17449,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topmid4 = { lightType = 'point', @@ -24319,7 +17458,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.05, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topfront1 = { lightType = 'point', @@ -24328,7 +17467,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, topfront2 = { lightType = 'point', @@ -24337,261 +17476,56 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.25, a = 0.055, modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armgmm'] = { - -- light = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 25, posz = 0, radius = 40, - -- color2r = 0, color2g = 0, color2b = 0., colortime = -1, - -- r = 1, g = 0.86, b = 0.25, a = 0.3, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - top1anim = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.5, posy = 29, posz = -11.8, radius = 5, - dirx = 0, diry = 0.6666667, dirz = 0, theta = -1, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.2, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top1anim2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.5, posy = 29, posz = -11.8, radius = 5, - dirx = 0, diry = 0.6666667, dirz = 0, theta = -1, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.2, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top1anim3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 11.5, posy = 29, posz = 11.8, radius = 5, - dirx = 0, diry = 0.6666667, dirz = 0, theta = -1, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.2, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top1anim4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -11.5, posy = 29, posz = 11.8, radius = 5, - dirx = 0, diry = 0.6666667, dirz = 0, theta = -1, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.2, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -6.5, posy = 23, posz = -33, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 6.5, posy = 23, posz = -33, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -6.5, posy = 23, posz = 33, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 6.5, posy = 23, posz = 33, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light5 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -33, posy = 23, posz = -6.5, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light6 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -33, posy = 23, posz = 6.5, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light7 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 33, posy = 23, posz = -6.5, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - light8 = { + light = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 33, posy = 23, posz = 6.5, radius = 14, - color2r = 0, color2g = 0, color2b = 0., colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - botbeam1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -27, posy = 8, posz = -17, radius = 9.0, - pos2x = -17, pos2y = 8, pos2z = -27, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.2, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - botbeam2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 27, posy = 8, posz = -17, radius = 9.0, - pos2x = 17, pos2y = 8, pos2z = -27, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.2, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - botbeam3 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -27, posy = 8, posz = 17, radius = 9.0, - pos2x = -17, pos2y = 8, pos2z = 27, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.2, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - botbeam4 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 27, posy = 8, posz = 17, radius = 9.0, - pos2x = 17, pos2y = 8, pos2z = 27, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.86, b = 0.25, a = 0.2, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 20, posz = 0, radius = 75, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, + r = 1, g = 0.86, b = 0.25, a = 0.2, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corbhmth'] = { corner1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -21, posy = 15, posz = 21, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 0.9, b = 0.2, a = 0.85, - modelfactor = 0.45, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -21, posy = 15, posz = 21, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.085, + modelfactor = 0.45, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, corner2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 21, posy = 15, posz = 21, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 0.9, b = 0.2, a = 0.85, - modelfactor = 0.45, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 21, posy = 15, posz = 21, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.085, + modelfactor = 0.45, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, corner3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -21, posy = 15, posz = -21, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 0.9, b = 0.2, a = 0.85, - modelfactor = 0.45, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -21, posy = 15, posz = -21, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.085, + modelfactor = 0.45, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, corner4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 21, posy = 15, posz = -21, radius = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 0.9, b = 0.2, a = 0.85, - modelfactor = 0.45, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - chimney = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0.4, posy = 37, posz = -5.7, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.2, g = 0.9, b = 0.2, a = 1.8, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashl1 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 14.8, posy = 33, posz = -6.1, radius = 1.4, - pos2x = 16.8, pos2y = 33, pos2z = -6.1, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashl2 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 14.8, posy = 33, posz = -8.5, radius = 1.4, - pos2x = 16.8, pos2y = 33, pos2z = -8.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 90, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashr1 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -14.2, posy = 33, posz = -6.1, radius = 1.4, - pos2x = -16.2, pos2y = 33, pos2z = -6.1, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashr2 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -14.2, posy = 33, posz = -8.5, radius = 1.4, - pos2x = -16.2, pos2y = 33, pos2z = -8.5, - color2r = -10, color2g = -10, color2b = -10, colortime = 90, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 21, posy = 15, posz = -21, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.085, + modelfactor = 0.45, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corgeo'] = { @@ -24602,643 +17536,327 @@ local unitLights = { -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, -- r = 1, g = 0.9, b = 0.2, a = 0.15, -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, - -- top1_1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 28, posz = 44, radius = 16, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - -- r = 1, g = 0.9, b = 0.2, a = 0.5, - -- modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - chimney = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 54, posz = 0, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.8, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 28, posz = 29, radius = 18, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 25, posy = 28, posz = -15, radius = 18, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -25, posy = 28, posz = -15, radius = 18, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['coruwgeo'] = { - chimney = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 54, posz = 0, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.8, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 28, posz = -29, radius = 18, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 25, posy = 28, posz = 15, radius = 18, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top3 = { + top1_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -25, posy = 28, posz = 15, radius = 18, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 28, posz = 44, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.06, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['corageo'] = { - chimney = { + top1_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 60, posz = 0, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.8, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rod1 = { - lightType = 'point', - pieceName = 'rod2', - lightConfig = { posx = 0, posy = 63, posz = 22, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.9, - modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rod2 = { - lightType = 'point', - pieceName = 'rod3', - lightConfig = { posx = 19, posy = 63, posz = -11, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.9, - modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rod3 = { - lightType = 'point', - pieceName = 'rod1', - lightConfig = { posx = -19, posy = 63, posz = -11, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.9, - modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -18, posy = 28, posz = 24, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top1 = { + top1_3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 40, posz = 34, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 18, posy = 28, posz = 24, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top2 = { + --top2 = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = -15, posy = 28, posz = -8, radius = 28, + -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + -- r = 1, g = 0.9, b = 0.2, a = 0.15, + -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + -- lifetime = 0, sustain = 0, animtype = 0}, + --}, + top2_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 27, posy = 40, posz = -16, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -33, posy = 28, posz = -18, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top3 = { + top2_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -27, posy = 40, posz = -16, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = 28, posz = -25, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['coruwageo'] = { - chimney = { + top2_3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 60, posz = 0, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.8, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rod1 = { - lightType = 'point', - pieceName = 'rod2', - lightConfig = { posx = 0, posy = 63, posz = -22, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.9, - modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rod2 = { - lightType = 'point', - pieceName = 'rod3', - lightConfig = { posx = 19, posy = 63, posz = 11, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.9, - modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rod3 = { - lightType = 'point', - pieceName = 'rod1', - lightConfig = { posx = -19, posy = 63, posz = 11, radius = 11, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.9, b = 0.2, a = 1.9, - modelfactor = 0.6, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -32, posy = 28, posz = 0, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top1 = { + --top3 = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = 15, posy = 28, posz = -8, radius = 28, + -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + -- r = 1, g = 0.9, b = 0.2, a = 0.15, + -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + -- lifetime = 0, sustain = 0, animtype = 0}, + --}, + top3_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 40, posz = -34, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 33, posy = 28, posz = -18, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top2 = { + top3_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 27, posy = 40, posz = 16, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12, posy = 28, posz = -25, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top3 = { + top3_3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -27, posy = 40, posz = 16, radius = 20, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.3, specular = 0, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 32, posy = 28, posz = 0, radius = 28, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.05, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, - ['armgeo'] = { - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13, posy = 47, posz = 9, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13, posy = 47, posz = -17, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top3 = { + ['corageo'] = { + --top1 = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = 0, posy = 44, posz = 23, radius = 35, + -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + -- r = 1, g = 0.9, b = 0.2, a = 0.15, + -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + -- lifetime = 0, sustain = 0, animtype = 0}, + --}, + top1_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 13, posy = 47, posz = 9, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 44, posz = 50, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - top4 = { + top1_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 13, posy = 47, posz = -17, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -24, posy = 44, posz = 30, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - mid1animated = { + top1_3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 41.1, posz = 21.7, radius = 3, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -8.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.2, a = 1.0, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- mid1beam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 33, posz = 21.0, radius = 3.0, - -- pos2x = 0, pos2y = 48, pos2z = 21.1, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - mid2beam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 0, posy = 33, posz = -29.0, radius = 3.0, - pos2x = 0, pos2y = 48, pos2z = -29.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid3beam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 25, posy = 33, posz = -4, radius = 3.0, - pos2x = 25, pos2y = 48, pos2z = -4.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid4beam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -25, posy = 33, posz = -4, radius = 3.0, - pos2x = -25, pos2y = 48, pos2z = -4.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 24, posy = 44, posz = 30, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottom1 = { + --top2 = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = -21, posy = 44, posz = -14, radius = 39, + -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + -- r = 1, g = 0.9, b = 0.2, a = 0.15, + -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + -- lifetime = 0, sustain = 0, animtype = 0}, + --}, + top2_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -22, posy = 9, posz = 25, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 0.7, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -39, posy = 44, posz = -24, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottom2 = { + top2_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 22, posy = 9, posz = 25, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 0.7, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bottombeam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -18, posy = 2, posz = 24, radius = 4.0, - pos2x = 18, pos2y = 2, pos2z = 24.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.4, g = 0.9, b = 0.2, a = 0.2, - modelfactor = 0.5, specular = 0.2, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -19, posy = 44, posz = -31, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottoml = { + top2_3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8, posy = 2, posz = 24, radius = 7, - dirx = 0.6666667, diry = 0, dirz = 0, theta = -9, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.2, a = 1.0, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -38, posy = 44, posz = 0, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottomr = { + --top3 = { + -- lightType = 'point', + -- pieceName = 'base', + -- lightConfig = { posx = 21, posy = 44, posz = -14, radius = 39, + -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + -- r = 1, g = 0.9, b = 0.2, a = 0.15, + -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + -- lifetime = 0, sustain = 0, animtype = 0}, + --}, + top3_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8, posy = 2, posz = 24, radius = 7, - dirx = -0.6666667, diry = 0, dirz = 0, theta = -9, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.2, a = 1.0, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 39, posy = 44, posz = -24, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - hotl = { + top3_2 = { lightType = 'point', - pieceName = 'hotl', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 7.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 0.35, b = 0.1, a = 0.9, - modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 18, posy = 44, posz = -31, radius = 39, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - hotr = { + top3_3 = { lightType = 'point', - pieceName = 'hotr', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 7.5, + pieceName = 'base', + lightConfig = { posx = 38, posy = 44, posz = 0, radius = 39, color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - r = 1, g = 0.35, b = 0.1, a = 0.9, - modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 0.9, b = 0.2, a = 0.07, + modelfactor = 0.3, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armgeo'] = { top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -13, posy = 47, posz = 9, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = 45, posz = 4, radius = 20, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -13, posy = 47, posz = -17, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -12, posy = 45, posz = -11, radius = 20, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 13, posy = 47, posz = 9, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12, posy = 45, posz = 4, radius = 20, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 13, posy = 47, posz = -17, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 12, posy = 45, posz = -11, radius = 20, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - mid1animated = { + mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 41.1, posz = 21.7, radius = 3, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -8.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.2, a = 1.0, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- mid1beam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 33, posz = 21.0, radius = 3.0, - -- pos2x = 0, pos2y = 48, pos2z = 21.1, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - mid2beam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 0, posy = 33, posz = -29.0, radius = 3.0, - pos2x = 0, pos2y = 48, pos2z = -29.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid3beam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 25, posy = 33, posz = -4, radius = 3.0, - pos2x = 25, pos2y = 48, pos2z = -4.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid4beam = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -25, posy = 33, posz = -4, radius = 3.0, - pos2x = -25, pos2y = 48, pos2z = -4.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 38, posz = 28, radius = 32, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottom1 = { + mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -22, posy = 9, posz = 25, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 0.7, b = 0.2, a = 0.6, + lightConfig = { posx = 0, posy = 38, posz = -32, radius = 32, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottom2 = { + mid3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 22, posy = 9, posz = 25, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 0.7, b = 0.2, a = 0.6, + lightConfig = { posx = 30, posy = 38, posz = -4, radius = 32, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottombeam = { - lightType = 'beam', + mid4 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -18, posy = 2, posz = 24, radius = 4.0, - pos2x = 18, pos2y = 2, pos2z = 24.1, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.4, g = 0.9, b = 0.2, a = 0.2, - modelfactor = 0.5, specular = 0.2, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -30, posy = 38, posz = -4, radius = 32, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.9, b = 0.3, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottoml = { + bottom1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 8, posy = 2, posz = 24, radius = 7, - dirx = 0.6666667, diry = 0, dirz = 0, theta = -9, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.2, a = 1.0, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -22, posy = 9, posz = 25, radius = 14, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.7, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottomr = { + bottom2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -8, posy = 2, posz = 24, radius = 7, - dirx = -0.6666667, diry = 0, dirz = 0, theta = -9, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.2, a = 1.0, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 22, posy = 9, posz = 25, radius = 14, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.7, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, hotl = { lightType = 'point', pieceName = 'hotl', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 7.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 0.35, b = 0.1, a = 0.9, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 1, g = 0.35, b = 0.1, a = 0.14, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, hotr = { lightType = 'point', pieceName = 'hotr', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 7.5, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 15, color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, - r = 1, g = 0.35, b = 0.1, a = 0.9, + r = 1, g = 0.35, b = 0.1, a = 0.14, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - - ['armuwgeo'] = { - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13, posy = 47, posz = 13, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -13, posy = 47, posz = -13, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13, posy = 47, posz = 13, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top4 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 13, posy = 47, posz = -13, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1.1, g = 0.9, b = 0.3, a = 0.45, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid1animated = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 41.1, posz = 25.7, radius = 3, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -8.5, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.2, a = 1.0, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- mid1beam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 33, posz = 21.0, radius = 3.0, - -- pos2x = 0, pos2y = 48, pos2z = 21.1, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid2beam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 33, posz = -29.0, radius = 3.0, - -- pos2x = 0, pos2y = 48, pos2z = -29.1, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid3beam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = 25, posy = 33, posz = -4, radius = 3.0, - -- pos2x = 25, pos2y = 48, pos2z = -4.1, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid4beam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = -25, posy = 33, posz = -4, radius = 3.0, - -- pos2x = -25, pos2y = 48, pos2z = -4.1, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- bottombeam = { - -- lightType = 'beam', - -- pieceName = 'base', - -- lightConfig = { posx = -18, posy = 2, posz = 24, radius = 4.0, - -- pos2x = 18, pos2y = 2, pos2z = 24.1, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - -- r = 1.4, g = 0.9, b = 0.2, a = 0.2, - -- modelfactor = 0.5, specular = 0.2, scattering = 1.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['legestor'] = { rturbb = { @@ -25248,7 +17866,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['leggeo'] = { @@ -25259,7 +17877,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legageo'] = { @@ -25270,7 +17888,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, aturbl = { lightType = 'point', @@ -25279,7 +17897,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, aturbr = { lightType = 'point', @@ -25288,7 +17906,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legrampart'] = { @@ -25299,7 +17917,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, rturbl = { lightType = 'point', @@ -25308,7 +17926,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, rturbr = { lightType = 'point', @@ -25317,7 +17935,7 @@ local unitLights = { color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, r = 1, g = 0.9, b = 0.3, a = 0.3, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, jamlight1 = { lightType = 'point', @@ -25326,7 +17944,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0, b = 0, a = 0.2, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, jamlight2 = { lightType = 'point', @@ -25335,7 +17953,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0, b = 0, a = 0.2, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, jamlight3 = { lightType = 'point', @@ -25344,7 +17962,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0, b = 0, a = 0.2, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armageo'] = { @@ -25355,354 +17973,142 @@ local unitLights = { -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, -- r = 0.6, g = 0.42, b = 0.05, a = 0.5, -- modelfactor = 0.1, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, + -- lifetime = 0, sustain = 0, animtype = 0}, --}, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 49, posz = 8, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, + lightConfig = { posx = 0, posy = 45, posz = 8, radius = 17, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.11, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6.5, posy = 49, posz = -3.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, + lightConfig = { posx = -6.5, posy = 45, posz = -3.5, radius = 17, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.11, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.5, posy = 49, posz = -3.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, + lightConfig = { posx = 6.5, posy = 45, posz = -3.5, radius = 17, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.11, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top1anim = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 44, posz = 6, radius = 8, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -3, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 1.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top2anim = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -6.5, posy = 44, posz = -3.5, radius = 8, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -3, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 1.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - top3anim = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 6.5, posy = 44, posz = -3.5, radius = 8, - dirx = 0, diry = -0.6666667, dirz = 0, theta = -3, - color2r = -1, color2g = -1, color2b = -1, colortime = 45, - r = 1.1, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.1, specular = 0.1, scattering = 1.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -17, posy = 29, posz = 45, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -18, posy = 24, posz = 46, radius = 53, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 17, posy = 27, posz = 45, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 18, posy = 24, posz = 46, radius = 53, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -32, posy = 274, posz = -42, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -32, posy = 24, posz = -42, radius = 53, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -50, posy = 27, posz = -4, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -50, posy = 24, posz = -4, radius = 53, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 32, posy = 27, posz = -42, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 32, posy = 24, posz = -42, radius = 53, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 50, posy = 27, posz = -4, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1cone = { - lightType = 'cone', - pieceName = 'emit', - lightConfig = { posx = 0, posy = 45, posz = 47, radius = 60, - dirx = 0, diry = -1.5, dirz = 1, theta = 0.6, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.5, specular = 0.2, scattering = 2.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2cone = { - lightType = 'cone', - pieceName = 'emit', - lightConfig = { posx = -39, posy = 45, posz = -21, radius = 60, - dirx = -1.66, diry = -2, dirz = -1, theta = 0.6, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.5, specular = 0.2, scattering = 2.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side3cone = { - lightType = 'cone', - pieceName = 'emit', - lightConfig = { posx = 39, posy = 45, posz = -21, radius = 60, - dirx = 1.66, diry = -2, dirz = -1, theta = 0.6, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.5, specular = 0.2, scattering = 2.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bottom1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = -40, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 0.6, g = 0.42, b = 0.05, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bottom2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 35, posy = 10, posz = 19, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 0.6, g = 0.42, b = 0.05, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - bottom3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -35, posy = 10, posz = 19, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 0.6, g = 0.42, b = 0.05, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['armuwageo'] = { - --light = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 30, posz = 0, radius = 78, - -- color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 75, - -- r = 0.6, g = 0.42, b = 0.05, a = 0.5, - -- modelfactor = 0.1, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - --}, - top1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 59, posz = 0, radius = 19, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 0.9, b = 0.3, a = 0.8, + lightConfig = { posx = 50, posy = 24, posz = -4, radius = 53, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 3}, - }, - -- top2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 49, posz = -3.5, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.1, g = 0.9, b = 0.3, a = 0.5, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 49, posz = -3.5, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.1, g = 0.9, b = 0.3, a = 0.5, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top1anim = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 44, posz = 6, radius = 8, - -- dirx = 0, diry = -0.6666667, dirz = 0, theta = -3, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 45, - -- r = 1.1, g = 0.9, b = 0.3, a = 0.8, - -- modelfactor = 0.1, specular = 0.1, scattering = 1.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top2anim = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 44, posz = -3.5, radius = 8, - -- dirx = 0, diry = -0.6666667, dirz = 0, theta = -3, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 45, - -- r = 1.1, g = 0.9, b = 0.3, a = 0.8, - -- modelfactor = 0.1, specular = 0.1, scattering = 1.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- top3anim = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 44, posz = -3.5, radius = 8, - -- dirx = 0, diry = -0.6666667, dirz = 0, theta = -3, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 45, - -- r = 1.1, g = 0.9, b = 0.3, a = 0.8, - -- modelfactor = 0.1, specular = 0.1, scattering = 1.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - mid1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -17, posy = 29, posz = -45, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid2 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 17, posy = 27, posz = -45, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mid3 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -32, posy = 274, posz = 42, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - mid4 = { + midwhite1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -50, posy = 27, posz = 4, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 24, posz = 55, radius = 44, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - mid5 = { + midwhite2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 32, posy = 27, posz = 42, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -48, posy = 24, posz = -26, radius = 44, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - mid6 = { + midwhite3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 50, posy = 27, posz = 4, radius = 22, - color2r = -1, color2g = -1, color2b = -1, colortime = -1.5, - r = 1.1, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 48, posy = 24, posz = -26, radius = 44, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- side1cone = { - -- lightType = 'cone', - -- pieceName = 'emit', - -- lightConfig = { posx = 0, posy = 45, posz = 47, radius = 60, - -- dirx = 0, diry = -1.5, dirz = 1, theta = 0.6, - -- color2r = 0, color2g = 0, color2b = 0.0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 0.4, - -- modelfactor = 0.5, specular = 0.2, scattering = 2.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side2cone = { - -- lightType = 'cone', - -- pieceName = 'emit', - -- lightConfig = { posx = -39, posy = 45, posz = -21, radius = 60, - -- dirx = -1.66, diry = -2, dirz = -1, theta = 0.6, - -- color2r = 0, color2g = 0, color2b = 0.0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 0.4, - -- modelfactor = 0.5, specular = 0.2, scattering = 2.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- side3cone = { - -- lightType = 'cone', - -- pieceName = 'emit', - -- lightConfig = { posx = 39, posy = 45, posz = -21, radius = 60, - -- dirx = 1.66, diry = -2, dirz = -1, theta = 0.6, - -- color2r = 0, color2g = 0, color2b = 0.0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 0.4, - -- modelfactor = 0.5, specular = 0.2, scattering = 2.8, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, bottom1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = 40, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 0.6, g = 0.42, b = 0.05, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 12, posz = -40, radius = 33, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, bottom2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 35, posy = 10, posz = -19, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 0.6, g = 0.42, b = 0.05, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 35, posy = 12, posz = 19, radius = 33, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, bottom3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -35, posy = 10, posz = -19, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 0.6, g = 0.42, b = 0.05, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -35, posy = 12, posz = 19, radius = 33, + color2r = 1, color2g = 0.7, color2b = 0.15, colortime = 0, + r = 0.6, g = 0.42, b = 0.05, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armuwmme'] = { @@ -25713,7 +18119,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -25722,7 +18128,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -25731,7 +18137,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -25740,7 +18146,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base5 = { lightType = 'point', @@ -25749,7 +18155,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base6 = { lightType = 'point', @@ -25758,7 +18164,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, head1 = { lightType = 'point', @@ -25767,7 +18173,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.1, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, head2 = { lightType = 'point', @@ -25776,7 +18182,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.1, modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, armemit1 = { lightType = 'point', @@ -25785,7 +18191,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, armemit2 = { lightType = 'point', @@ -25794,7 +18200,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 0.8, b = 0.4, a = 0.07, modelfactor = 0.3, specular = 0, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmoho'] = { @@ -25802,533 +18208,344 @@ local unitLights = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 14, posy = 13, posz = 19, radius = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.8, b = 0.6, a = 0.12, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = -14, posy = 13, posz = 19, radius = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.8, b = 0.6, a = 0.12, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 23, posy = 13, posz = 3, radius = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.8, b = 0.6, a = 0.12, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = -23, posy = 13, posz = 3, radius = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.8, b = 0.6, a = 0.12, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base5 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 12, posy = 13, posz = -21, radius = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.8, b = 0.6, a = 0.12, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base6 = { lightType = 'point', pieceName = 'base', lightConfig = { posx = -12, posy = 13, posz = -21, radius = 25, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.8, b = 0.6, a = 0.12, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', pieceName = 'arms1', - lightConfig = { posx = 30, posy = 62, posz = 17, radius = 26, - color2r = 0.4, color2g = 0.3, color2b = 0.2, colortime = 60, - r = 1, g = 0.8, b = 0.6, a = 1, - modelfactor = 0.3, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 30, posy = 64, posz = 17, radius = 22, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'arms1', - lightConfig = { posx = -30, posy = 62, posz = 17, radius = 26, - color2r = 0.4, color2g = 0.3, color2b = 0.2, colortime = 60, - r = 1, g = 0.8, b = 0.6, a = 1, - modelfactor = 0.3, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -30, posy = 64, posz = 17, radius = 22, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', pieceName = 'arms1', - lightConfig = { posx = 0, posy = 62, posz = -34, radius = 26, - color2r = 0.4, color2g = 0.3, color2b = 0.2, colortime = 60, - r = 1, g = 0.8, b = 0.6, a = 1, - modelfactor = 0.3, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 64, posz = -34, radius = 22, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.09, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + topmid = { + lightType = 'point', + pieceName = 'arms1', + lightConfig = { posx = 0, posy = 50, posz = 0, radius = 50, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 0.8, b = 0.6, a = 0.1, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- topmid = { - -- lightType = 'point', - -- pieceName = 'arms1', - -- lightConfig = { posx = 0, posy = 55, posz = 0, radius = 35, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1, g = 0.8, b = 0.6, a = 0.3, - -- modelfactor = 0.15, specular = 0.4, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corsolar'] = { light_small_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10.5, posy = 6, posz = 34.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.44, - modelfactor = 0.3, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10.5, posy = 6, posz = 34.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_small_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10.5, posy = 6, posz = 34.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.44, - modelfactor = 0.3, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10.5, posy = 6, posz = 34.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_small_3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10.5, posy = 6, posz = -34.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.44, - modelfactor = 0.3, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10.5, posy = 6, posz = -34.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_small_4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10.5, posy = 6, posz = -34.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.39, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10.5, posy = 6, posz = -34.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_small_5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 34.5, posy = 6, posz = -10.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.39, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 34.5, posy = 6, posz = -10.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_small_6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 34.5, posy = 6, posz = 10.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.39, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 34.5, posy = 6, posz = 10.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_small_7 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -34.5, posy = 6, posz = -10.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.39, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -34.5, posy = 6, posz = -10.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_small_8 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -34.5, posy = 6, posz = 10.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.39, - modelfactor = 0.3, specular = 0.4, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -34.5, posy = 6, posz = 10.5, radius = 13, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -21, posy = 8, posz = 30, radius = 10, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -21, posy = 6, posz = 30, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 21, posy = 8, posz = 30, radius = 10, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 21, posy = 6, posz = 30, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -21, posy = 8, posz = -30, radius = 10, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -21, posy = 6, posz = -30, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 21, posy = 8, posz = -30, radius = 10, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 21, posy = 6, posz = -30, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -30.2, posy = 8, posz = 20.7, radius = 11, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -30.2, posy = 6, posz = 20.7, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 30.2, posy = 8, posz = 20.7, radius = 11, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 30.2, posy = 6, posz = 20.7, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_7 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -30.2, posy = 8, posz = -20.7, radius = 11, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -30.2, posy = 6, posz = -20.7, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, light_large_8 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 30.2, posy = 8, posz = -20.7, radius = 11, - color2r = 0.2, color2g = 0.18, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.5, a = 0.35, - modelfactor = 0.2, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamtop = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 28, posz = 0, radius = 15, - color2r = -100, color2g = 0.18, color2b = 0, colortime = -1, - r = 0, g = 0, b = 0, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 30.2, posy = 6, posz = -20.7, radius = 20, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.5, a = 0.05, + modelfactor = 0.3, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, ['armmex'] = { base = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 7, - color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 20, - r = 1, g = 1, b = 1, a = 2.8, - modelfactor = 0.4, specular = 0.5, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 6, posz = 0, radius = 14, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.15, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- mineglow = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 17, posz = 0, radius = 4, - -- color2r = 0.8, color2g = 0.7, color2b = 0.6, colortime = 60, - -- r = 1.1, g = 1, b = 0.9, a = 1, - -- modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- minebeam = { - -- lightType = 'cone', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 90, - -- dirx = 0, diry = 100, dirz = 0.1, theta = 0.08, - -- r = 1, g = 1, b = 0.89, a = 0.8, - -- modelfactor = 0.5, specular = 0.3, scattering = 2.5, lensflare = 0.6, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, side1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -18.5, posy = -9, posz = 18.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.33, + lightConfig = { posx = -20, posy = -9, posz = 20, radius = 13, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 18.5, posy = -9, posz = 18.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.33, + lightConfig = { posx = 20, posy = -9, posz = 20, radius = 13, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -18.5, posy = -9, posz = -18.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.33, + lightConfig = { posx = -20, posy = -9, posz = -20, radius = 13, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 18.5, posy = -9, posz = -18.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.4, a = 0.33, + lightConfig = { posx = 20, posy = -9, posz = -20, radius = 13, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsolar'] = { light = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 2, posz = 0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.3, a = 0.7, - modelfactor = 0.4, specular = 0.3, scattering = 0.25, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = 0, radius = 33, + color2r = 1, color2g = 1, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.3, a = 0.55, + modelfactor = 0.3, specular = 0.5, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armadvsol'] = { - side1cone = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = -13, radius = 19, - dirx = 0, diry = -1.7, dirz = -1, theta = 0.75, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.1, g = 1, b = 0.75, a = 0.7, - modelfactor = 0.5, specular = 0.2, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2cone = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 10, posz = 13, radius = 19, - dirx = 0, diry = -1.7, dirz = 1, theta = 0.75, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1.1, g = 1, b = 0.75, a = 0.7, - modelfactor = 0.5, specular = 0.2, scattering = 1.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- glow1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.4, posy = 6, posz = 16, radius = 24, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.04, - -- modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- glow2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.4, posy = 6, posz = 16, radius = 24, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.04, - -- modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- glow3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.4, posy = 6, posz = -16, radius = 24, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.04, - -- modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- glow4 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.4, posy = 6, posz = -16, radius = 24, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 1, g = 1, b = 0.4, a = 0.04, - -- modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['cormex'] = { - base = { + glow1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 10, - color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 60, - r = 1, g = 1, b = 1, a = 2.8, - modelfactor = 0.4, specular = 0.5, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- mineglow = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 18, posz = 0, radius = 7, - -- color2r = 0.8, color2g = 0.7, color2b = 0.6, colortime = 60, - -- r = 1.1, g = 1, b = 0.9, a = 1, - -- modelfactor = 0.8, specular = 0.5, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- minebeam = { - -- lightType = 'cone', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = -10, posz = 0, radius = 70, - -- dirx = 0, diry = 100, dirz = 0.1, theta = 0.08, - -- r = 1, g = 1, b = 1, a = 0.8, - -- modelfactor = 0.5, specular = 0.3, scattering = 2.5, lensflare = 0.6, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - side1 = { - lightType = 'point', - pieceName = 'stand', - lightConfig = { posx = 0, posy = 7.5, posz = 20, radius = 13, - color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2 = { - lightType = 'point', - pieceName = 'stand', - lightConfig = { posx = -16, posy = 7.5, posz = -9, radius = 13, - color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side3 = { - lightType = 'point', - pieceName = 'stand', - lightConfig = { posx = 16, posy = 7.5, posz = -9, radius = 13, - color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.4, posy = 6, posz = 16, radius = 24, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.04, + modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - }, - ['corexp'] = { - base = { + glow2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 4, posz = 0, radius = 10, - color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 60, - r = 1, g = 1, b = 1, a = 2.8, - modelfactor = 0.4, specular = 0.5, scattering = 1.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lasertoptip1 = { - lightType = 'point', - pieceName = 'barrel1', - lightConfig = { posx = 0.2, posy = 0, posz = 1., radius = 2.0, - color2r = -30, color2g = -30, color2b = -30, colortime = 60, - r = 1, g = 0, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lasertoptip2 = { - lightType = 'point', - pieceName = 'barrel2', - lightConfig = { posx = 0.2, posy = 0, posz = 1., radius = 2.0, - color2r = -30, color2g = -30, color2b = -30, colortime = 60, - r = 1, g = 0, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1 = { - lightType = 'point', - pieceName = 'stand', - lightConfig = { posx = 0, posy = 7.5, posz = 20, radius = 13, - color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side2 = { - lightType = 'point', - pieceName = 'stand', - lightConfig = { posx = -16, posy = 7.5, posz = -9, radius = 13, - color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side3 = { - lightType = 'point', - pieceName = 'stand', - lightConfig = { posx = 16, posy = 7.5, posz = -9, radius = 13, - color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['cormoho'] = { - side1 = { - lightType = 'point', - pieceName = 'column', - lightConfig = { posx = 0, posy = -4, posz = 20, radius = 17, - color2r = 0.2, color2g = 0.2, color2b = 0.2, colortime = 30, - r = 1, g = 1, b = 1, a = 1, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.4, posy = 6, posz = 16, radius = 24, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.04, + modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side2 = { + glow3 = { lightType = 'point', - pieceName = 'column', - lightConfig = { posx = -16, posy = -4, posz = -9, radius = 17, - color2r = 0.2, color2g = 0.2, color2b = 0.2, colortime = 30, - r = 1, g = 1, b = 1, a = 1, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -6.4, posy = 6, posz = -16, radius = 24, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.04, + modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side3 = { + glow4 = { lightType = 'point', - pieceName = 'column', - lightConfig = { posx = 16, posy = -4, posz = -9, radius = 17, - color2r = 0.2, color2g = 0.2, color2b = 0.2, colortime = 30, - r = 1, g = 1, b = 1, a = 1, - modelfactor = 0.3, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = 6.4, posy = 6, posz = -16, radius = 24, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.04, + modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coradvsol'] = { glow = { lightType = 'point', pieceName = 'emit', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.2, a = 0.9, - modelfactor = 0.2, specular = 0.35, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5, posz = 0, radius = 32, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 1, g = 1, b = 0.7, a = 0.09, + modelfactor = 0.2, specular = 0.35, scattering = 1.8, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, @@ -26340,7 +18557,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.14, modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, glow2 = { lightType = 'point', @@ -26349,7 +18566,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.14, modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, glow3 = { lightType = 'point', @@ -26358,320 +18575,207 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.4, a = 0.14, modelfactor = 0.33, specular = 1.5, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormakr'] = { - side1cone = { - lightType = 'cone', + enabled1 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 8, posz = 0, radius = 37, - dirx = -1, diry = -0.8, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1cone2 = { - lightType = 'cone', + lightConfig = { posx = 0, posy = 15, posz = 0, radius = 33, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.17, + modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled2 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 8, posz = 0, radius = 37, - dirx = 1, diry = -0.8, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1cone3 = { - lightType = 'cone', + lightConfig = { posx = 0, posy = 0, posz = -17, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled3 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 8, posz = 0, radius = 37, - dirx = 0, diry = -0.8, dirz = 1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1cone4 = { - lightType = 'cone', + lightConfig = { posx = 0, posy = 0, posz = 17, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled4 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 8, posz = 0, radius = 37, - dirx = 0, diry = -0.8, dirz = -1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 17, posy = 0, posz = 0, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - enabled1 = { + enabled5 = { lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 15, posz = 0, radius = 18, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1.5, - r = 1.2, g = 0.85, b = 0.25, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -17, posy = 0, posz = 0, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corfmkr'] = { enabled1 = { lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 12, posz = 0, radius = 14, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1.5, - r = 1.2, g = 0.85, b = 0.25, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 12, posz = 0, radius = 33, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.17, + modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side1cone = { - lightType = 'cone', + enabled2 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 45, - dirx = -1, diry = -0.8, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -5, posz = -17, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side1cone2 = { - lightType = 'cone', + enabled3 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 45, - dirx = 1, diry = -0.8, dirz = 0, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -5, posz = 17, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side1cone3 = { - lightType = 'cone', + enabled4 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 45, - dirx = 0, diry = -0.8, dirz = 1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 17, posy = -5, posz = 0, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - side1cone4 = { - lightType = 'cone', + enabled5 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 6, posz = 0, radius = 45, - dirx = 0, diry = -0.8, dirz = -1, theta = 0.4, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -17, posy = -5, posz = 0, radius = 29, + color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, + r = 1, g = 0.75, b = 0.25, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- enabled2 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = 0, posy = -5, posz = -17, radius = 29, - -- color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, - -- r = 1, g = 0.75, b = 0.25, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- enabled3 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = 0, posy = -5, posz = 17, radius = 29, - -- color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, - -- r = 1, g = 0.75, b = 0.25, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- enabled4 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = 17, posy = -5, posz = 0, radius = 29, - -- color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, - -- r = 1, g = 0.75, b = 0.25, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- enabled5 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = -17, posy = -5, posz = 0, radius = 29, - -- color2r = 0.8, color2g = 0.6, color2b = 0.10, colortime = 75, - -- r = 1, g = 0.75, b = 0.25, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['armuwmmm'] = { - -- light1 = { - -- lightType = 'point', - -- pieceName = 'light1', - -- lightConfig = { posx = 0, posy = 4, posz = -23, radius = 25, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.4, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- light2 = { - -- lightType = 'point', - -- pieceName = 'light1', - -- lightConfig = { posx = 0, posy = 4, posz = 23, radius = 25, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - -- r = 1.2, g = 0.7, b = 0.2, a = 0.4, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - enabled_mainglowbeamtop1 = { - lightType = 'beam', + light1_1 = { + lightType = 'point', pieceName = 'light1', - lightConfig = { posx = -13, posy = 0, posz = -22, radius = 9, - pos2x = 13, pos2y = 0, pos2z = -22, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1, - r = 1.2, g = 0.85, b = 0.25, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - enabled_mainglowbeamtop2 = { - lightType = 'beam', + lightConfig = { posx = -7, posy = 0, posz = -25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light1_2 = { + lightType = 'point', pieceName = 'light1', - lightConfig = { posx = -13, posy = 0, posz = 22, radius = 9, - pos2x = 13, pos2y = 0, pos2z = 22, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1, - r = 1.2, g = 0.85, b = 0.25, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - enabled_mainglowbeambot1 = { - lightType = 'beam', + lightConfig = { posx = 7, posy = 0, posz = -25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light1_3 = { + lightType = 'point', + pieceName = 'light1', + lightConfig = { posx = -7, posy = 0, posz = 25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light1_4 = { + lightType = 'point', + pieceName = 'light1', + lightConfig = { posx = 7, posy = 0, posz = 25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light2_1 = { + lightType = 'point', pieceName = 'light2', - lightConfig = { posx = -13, posy = 0, posz = -22, radius = 9, - pos2x = 13, pos2y = 0, pos2z = -22, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1, - r = 1.2, g = 0.85, b = 0.25, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - enabled_mainglowbeambot2 = { - lightType = 'beam', + lightConfig = { posx = -7, posy = 0, posz = -25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light2_2 = { + lightType = 'point', pieceName = 'light2', - lightConfig = { posx = -13, posy = 0, posz = 22, radius = 9, - pos2x = 13, pos2y = 0, pos2z = 22, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1, - r = 1.2, g = 0.85, b = 0.25, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- light1_2 = { - -- lightType = 'point', - -- pieceName = 'light1', - -- lightConfig = { posx = 7, posy = 0, posz = -25, radius = 33, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- light1_3 = { - -- lightType = 'point', - -- pieceName = 'light1', - -- lightConfig = { posx = -7, posy = 0, posz = 25, radius = 33, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- light1_4 = { - -- lightType = 'point', - -- pieceName = 'light1', - -- lightConfig = { posx = 7, posy = 0, posz = 25, radius = 33, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- light2_1 = { - -- lightType = 'point', - -- pieceName = 'light2', - -- lightConfig = { posx = -7, posy = 0, posz = -25, radius = 33, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- light2_2 = { - -- lightType = 'point', - -- pieceName = 'light2', - -- lightConfig = { posx = 7, posy = 0, posz = -25, radius = 33, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- light2_3 = { - -- lightType = 'point', - -- pieceName = 'light2', - -- lightConfig = { posx = -7, posy = 0, posz = 25, radius = 33, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.065, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- light2_4 = { - -- lightType = 'point', - -- pieceName = 'light2', - -- lightConfig = { posx = 7, posy = 0, posz = 25, radius = 33, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.08, - -- modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, + lightConfig = { posx = 7, posy = 0, posz = -25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light2_3 = { + lightType = 'point', + pieceName = 'light2', + lightConfig = { posx = -7, posy = 0, posz = 25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + light2_4 = { + lightType = 'point', + pieceName = 'light2', + lightConfig = { posx = 7, posy = 0, posz = 25, radius = 33, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, }, ['armmakr'] = { - side1cone = { - lightType = 'cone', + enabled1 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 5, posz = 0, radius = 39, - dirx = 0, diry = -0.8, dirz = -1, theta = 0.8, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - side1cone2 = { - lightType = 'cone', + lightConfig = { posx = 0, posy = 13, posz = 0, radius = 35, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled2 = { + lightType = 'point', + pieceName = 'light', + lightConfig = { posx = -14, posy = 6, posz = 0, radius = 32, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled3 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 5, posz = 0, radius = 39, - dirx = 0, diry = -0.8, dirz = 1, theta = 0.8, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.7, - modelfactor = 0.3, specular = 0.1, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- enabled1 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = 0, posy = 13, posz = 0, radius = 35, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- enabled2 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = -14, posy = 6, posz = 0, radius = 32, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- enabled3 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = 14, posy = 6, posz = 0, radius = 32, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 0, - -- r = 0.9, g = 0.7, b = 0.45, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, + lightConfig = { posx = 14, posy = 6, posz = 0, radius = 32, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, }, ['armfmkr'] = { enabled1 = { @@ -26681,7 +18785,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.9, g = 0.7, b = 0.45, a = 0.085, modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, enabled2 = { lightType = 'point', @@ -26690,7 +18794,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.9, g = 0.7, b = 0.45, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, enabled3 = { lightType = 'point', @@ -26699,104 +18803,92 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0.9, g = 0.7, b = 0.45, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormmkr'] = { enabled_top = { lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 8.5, posz = 0, radius = 19.5, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1, - r = 1.2, g = 0.85, b = 0.25, a = 1.2, - modelfactor = 0.5, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8.5, posz = 0, radius = 52, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.17, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, enabled_side1 = { lightType = 'point', pieceName = 'light', - lightConfig = { posx = -15, posy = -13, posz = 26, radius = 11, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.4, - modelfactor = 0.3, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -17, posy = -10, posz = 30, radius = 38, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, enabled_side2 = { lightType = 'point', pieceName = 'light', - lightConfig = { posx = -15, posy = -13, posz = -26, radius = 11, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.4, - modelfactor = 0.3, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -17, posy = -10, posz = -30, radius = 38, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, enabled_side3 = { lightType = 'point', pieceName = 'light', - lightConfig = { posx = 30, posy = -13, posz = 0, radius = 11, - color2r = 0, color2g = 0, color2b = 0.0, colortime = -1, - r = 1, g = 1, b = 0.89, a = 0.4, - modelfactor = 0.3, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 32, posy = -10, posz = 0, radius = 38, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmmkr'] = { - -- enabled_cone1x = { - -- lightType = 'cone', - -- pieceName = 'light', - -- lightConfig = { posx = 0, posy = -6, posz = 6, radius = 50, - -- dirx = 0, diry = 0.5, dirz = 0.5, theta = 0.80, - -- r = 1.2, g = 1.0, b = 0.6, a = 0.8, - -- modelfactor = 0.3, specular = 0.3, scattering = 4.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- enabled_cone2x = { - -- lightType = 'cone', - -- pieceName = 'light', - -- lightConfig = { posx = 0, posy = -6, posz = -6, radius = 50, - -- dirx = 0, diry = 0.5, dirz = -0.5, theta = 0.80, - -- r = 1.2, g = 1.0, b = 0.6, a = 0.8, - -- modelfactor = 0.3, specular = 0.3, scattering = 4.9, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- enabled_mainglow = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = 0, posy = 9, posz = 0, radius = 24, - -- color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1, - -- r = 1.2, g = 0.85, b = 0.25, a = 0.6, - -- modelfactor = 0.5, specular = 0.3, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - enabled_mainglowbeam = { - lightType = 'beam', + enabled_mid1 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = -15, posy = 9, posz = 0, radius = 9, - pos2x = 15, pos2y = 9, pos2z = 0, - color2r = 0.0, color2g = 0.0, color2b = 0.0, colortime = -1, - r = 1.1, g = 0.85, b = 0.25, a = 0.9, - modelfactor = 0.5, specular = 0.3, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - enabled_cone1 = { - lightType = 'cone', + lightConfig = { posx = 0, posy = 15, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.4, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled_mid2 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 4, posz = 15, radius = 30, - dirx = 0, diry = -0.9, dirz = 0.5, theta = 0.80, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1.0, b = 0.6, a = 0.6, - modelfactor = 0.3, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - enabled_cone2 = { - lightType = 'cone', + lightConfig = { posx = -25, posy = 4, posz = 0, radius = 42, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled_mid3 = { + lightType = 'point', + pieceName = 'light', + lightConfig = { posx = 25, posy = 4, posz = 0, radius = 42, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled_side1 = { + lightType = 'point', + pieceName = 'light', + lightConfig = { posx = 0, posy = 2, posz = 19, radius = 36, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + enabled_side2 = { + lightType = 'point', pieceName = 'light', - lightConfig = { posx = 0, posy = 4, posz = -15, radius = 30, - dirx = 0, diry = -0.9, dirz = -0.5, theta = 0.80, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1.0, b = 0.6, a = 0.6, - modelfactor = 0.3, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2, posz = -19, radius = 36, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = 0.9, g = 0.7, b = 0.45, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.35, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['lootboxbronze'] = { @@ -26807,7 +18899,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -26816,7 +18908,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -26825,7 +18917,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -26834,7 +18926,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -26843,7 +18935,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -26852,7 +18944,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['lootboxsilver'] = { @@ -26863,7 +18955,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -26872,7 +18964,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -26881,7 +18973,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -26890,7 +18982,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -26899,7 +18991,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -26908,7 +19000,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['lootboxgold'] = { @@ -26919,7 +19011,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -26928,7 +19020,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -26937,7 +19029,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -26946,7 +19038,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -26955,7 +19047,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -26964,7 +19056,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['lootboxplatinum'] = { @@ -26975,7 +19067,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -26984,7 +19076,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -26993,7 +19085,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -27002,7 +19094,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -27011,7 +19103,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -27020,7 +19112,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['lootboxsilver'] = { @@ -27031,7 +19123,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -27040,7 +19132,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -27049,7 +19141,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -27058,7 +19150,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -27067,7 +19159,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -27076,7 +19168,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['scavbeacon_t1'] = { @@ -27087,7 +19179,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -27096,7 +19188,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -27105,7 +19197,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -27114,7 +19206,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -27123,7 +19215,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkinside = { lightType = 'point', @@ -27132,7 +19224,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -27141,7 +19233,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['scavbeacon_t2'] = { @@ -27152,7 +19244,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -27161,7 +19253,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -27170,7 +19262,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -27179,7 +19271,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -27188,7 +19280,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkinside = { lightType = 'point', @@ -27197,7 +19289,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -27206,7 +19298,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['scavbeacon_t3'] = { @@ -27217,7 +19309,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -27226,7 +19318,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -27235,7 +19327,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -27244,7 +19336,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -27253,7 +19345,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkinside = { lightType = 'point', @@ -27262,7 +19354,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -27271,7 +19363,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['scavbeacon_t4'] = { @@ -27282,7 +19374,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 1}, + lifetime = 0, sustain = 0, animtype = 1}, }, blinkb = { lightType = 'point', @@ -27291,7 +19383,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkc = { lightType = 'point', @@ -27300,7 +19392,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkd = { lightType = 'point', @@ -27309,7 +19401,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinktop = { lightType = 'point', @@ -27318,7 +19410,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, blinkinside = { lightType = 'point', @@ -27327,7 +19419,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.85000002, modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, emit = { lightType = 'point', @@ -27336,7 +19428,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsilo'] = { @@ -27347,7 +19439,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', @@ -27356,7 +19448,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top3 = { lightType = 'point', @@ -27365,7 +19457,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top4 = { lightType = 'point', @@ -27374,7 +19466,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.075, modelfactor = 0.4, specular = 0, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', @@ -27383,7 +19475,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -27392,7 +19484,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base3 = { lightType = 'point', @@ -27401,7 +19493,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base4 = { lightType = 'point', @@ -27410,7 +19502,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base5 = { lightType = 'point', @@ -27419,7 +19511,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base6 = { lightType = 'point', @@ -27428,7 +19520,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base7 = { lightType = 'point', @@ -27437,7 +19529,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base8 = { lightType = 'point', @@ -27446,7 +19538,7 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.05, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, light1 = { lightType = 'point', @@ -27455,7 +19547,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 15, r = 3, g = 0, b = 0, a = 1, modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, light2 = { lightType = 'point', @@ -27464,7 +19556,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 15, r = 3, g = 0, b = 0, a = 1, modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, light3 = { lightType = 'point', @@ -27473,7 +19565,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 15, r = 3, g = 0, b = 0, a = 1, modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, light4 = { lightType = 'point', @@ -27482,7 +19574,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 15, r = 3, g = 0, b = 0, a = 1, modelfactor = 0.1, specular = 0.5, scattering = 0.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsilo'] = { @@ -27493,7 +19585,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.1, b = 0, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, launchlight2 = { -- this is the lightname lightType = 'cone', @@ -27502,7 +19594,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.1, b = 0, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, launchlight3 = { -- this is the lightname lightType = 'cone', @@ -27511,7 +19603,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.1, b = 0, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, launchlight4 = { -- this is the lightname lightType = 'cone', @@ -27520,7 +19612,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.1, b = 0, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legsilo'] = { @@ -27531,7 +19623,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.0, g = 0.8, b = 0, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, launchlight2 = { -- this is the lightname lightType = 'cone', @@ -27540,7 +19632,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.0, g = 0.8, b = 0, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, launchlight3 = { -- this is the lightname lightType = 'cone', @@ -27549,57 +19641,29 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.0, g = 0.8, b = 0, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1, lensflare = 2, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corint'] = { - teamflashr = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -31, posy = 46.4, posz = 0, radius = 1.2, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashl = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 31, posy = 46.4, posz = 0, radius = 1.2, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - mainturret1 = { - lightType = 'point', - pieceName = 'gun', - lightConfig = { posx = 0.2, posy = 27, posz = -2, radius = 1.2, - dirx = 0, diry = 0, dirz = 0.5, theta = -1.4, - color2r = -2, color2g = -2, color2b = -2, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 2, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- hotbarrel1 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = -7, posy = 8, posz = 5, radius = 30, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, - -- r = 1, g = 0.2, b = 0, a = 0.69999999, - -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - -- lifetime = 300, sustain = 1, selfshadowing = 0}, - -- }, - -- hotbarrel2 = { - -- lightType = 'point', - -- pieceName = 'light', - -- lightConfig = { posx = 7, posy = 8, posz = 5, radius = 30, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, - -- r = 1, g = 0.2, b = 0, a = 0.69999999, - -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - -- lifetime = 300, sustain = 1, selfshadowing = 0}, - -- }, - }, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + -- ['corint'] = { + -- hotbarrel1 = { + -- lightType = 'point', + -- pieceName = 'light', + -- lightConfig = { posx = -7, posy = 8, posz = 5, radius = 30, + -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, + -- r = 1, g = 0.2, b = 0, a = 0.69999999, + -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, + -- lifetime = 300, sustain = 1, animtype = 0}, + -- }, + -- hotbarrel2 = { + -- lightType = 'point', + -- pieceName = 'light', + -- lightConfig = { posx = 7, posy = 8, posz = 5, radius = 30, + -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, + -- r = 1, g = 0.2, b = 0, a = 0.69999999, + -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, + -- lifetime = 300, sustain = 1, animtype = 0}, + -- }, + -- }, ['corgplat'] = { eyes = { lightType = 'point', @@ -27608,18 +19672,18 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.11, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corfhlt'] = { eyes = { lightType = 'point', pieceName = 'turret1', - lightConfig = { posx = 5, posy = 12, posz = 17.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.81, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 20, posz = 17.5, radius = 19, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, searchlight = { lightType = 'cone', @@ -27628,7 +19692,7 @@ local unitLights = { dirx = 0, diry = 0.1, dirz = 1, theta = 0.18, r = 0.95, g = 0.95, b = 0.88, a = 0.4, modelfactor = -0.3, specular = -1.2, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corcv'] = { @@ -27638,8 +19702,8 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -27647,44 +19711,26 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.3, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 3, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'beam', lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 19, posz = 26, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 1, - modelfactor = 0.4, specular = 0.3, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 21, posz = 21, radius = 34, - dirx = -0.06, diry = -0.77, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.25, colortime = -3, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 20, posz = 28, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legcv'] = { @@ -27695,7 +19741,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -27704,7 +19750,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, } }, ['legch'] = { @@ -27715,7 +19761,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -27724,302 +19770,254 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, } }, ['armraz'] = { - -- searchlightl = { - -- lightType = 'cone', - -- pieceName = 'torso', - -- lightConfig = { posx = 7, posy = 9, posz = 3, radius = 100, - -- dirx = 0.2, diry = -0.4, dirz = 1, theta = 0.27, - -- r = 1, g = 1, b = 0.89, a = 0.4, - -- modelfactor = -0.5, specular = -0.3, scattering = 2.5, lensflare = 1.6, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- searchlightr = { - -- lightType = 'cone', - -- pieceName = 'torso', - -- lightConfig = { posx = -7, posy = 9, posz = 3, radius = 100, - -- dirx = -0.2, diry = -0.4, dirz = 1, theta = 0.27, - -- r = 1, g = 1, b = 0.89, a = 0.4, - -- modelfactor = -0.5, specular = -0.3, scattering = 2.5, lensflare = 1.6, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - eyesfront = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 2, posy = 12.0, posz = 22.5, radius = 3.8, - pos2x = -2, pos2y = 12.0, pos2z = 22.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesright = { - lightType = 'beam', + lightConfig = { posx = -6, posy = 13, posz = 26, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, + }, + eyes2 = { + lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -3.7, posy = 12.0, posz = 22.5, radius = 3.8, - pos2x = -5, pos2y = 11.0, pos2z = 18.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesleft = { - lightType = 'beam', + lightConfig = { posx = 6, posy = 13, posz = 26, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, + }, + shoulder1 = { + lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 3.7, posy = 12.0, posz = 22.5, radius = 3.8, - pos2x = 5, pos2y = 11.0, pos2z = 18.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 13, posz = 1, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, + }, + shoulder2 = { + lightType = 'point', + pieceName = 'torso', + lightConfig = { posx = 15, posy = 13, posz = 1, radius = 20, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - -- eyes = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 11, posz = 23, radius = 10, - -- color2r = 0.6, color2g = 0.6, color2b = 0.13, colortime = 60, - -- r = 1, g = 1, b = 0.2, a = 0.55, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 6, posy = 13, posz = 26, radius = 20, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- shoulder1 = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = -15, posy = 12, posz = 1, radius = 9, - -- color2r = 0.4, color2g = 0.28, color2b = 0.02, colortime = 90, - -- r = 1.3, g = 0.9, b = 0.15, a = 0.44, - -- modelfactor = 0.4, specular = 0.9, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- shoulder2 = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 15, posy = 12, posz = 1, radius = 9, - -- color2r = 0.4, color2g = 0.28, color2b = 0.02, colortime = 90, - -- r = 1.3, g = 0.9, b = 0.15, a = 0.44, - -- modelfactor = 0.4, specular = 0.9, scattering = 0.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, shoulderfront1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 8, posy = 10, posz = 7, radius = 7, + lightConfig = { posx = 7.8, posy = 10, posz = 7, radius = 12, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.2, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulderfront2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -8, posy = 10, posz = 7, radius = 7, + lightConfig = { posx = -7.8, posy = 10, posz = 7, radius = 12, color2r = 1, color2g = 1, color2b = 1, colortime = 0, - r = 1, g = 1, b = 1, a = 0.4, - modelfactor = 0.2, specular = 0.4, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 1, b = 1, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulderback1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -6.8, posy = 11, posz = -12.1, radius = 3, - color2r = -13, color2g = -13, color2b = -13, colortime = 50, - r = 1, g = 0.1, b = 0.1, a = 0.8, - modelfactor = 0.3, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 10.5, posz = -12.5, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, shoulderback2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 6.8, posy = 11, posz = -12.1, radius = 3, - color2r = -13, color2g = -13, color2b = -13, colortime = 50, - r = 1, g = 0.1, b = 0.1, a = 0.8, - modelfactor = 0.3, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 10.5, posz = -12.5, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, foot1 = { lightType = 'point', pieceName = 'rfoot', - lightConfig = { posx = 0, posy = 4.5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 0, posy = 1.5, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, foot2 = { lightType = 'point', pieceName = 'lfoot', - lightConfig = { posx = 0, posy = 4.5, posz = 0, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 0, posy = 1.5, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, + }, + gun1 = { + lightType = 'point', + pieceName = 'rcannon', + lightConfig = { posx = -0.3, posy = 6, posz = -5.2, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun2 = { + lightType = 'point', + pieceName = 'rcannon', + lightConfig = { posx = -0.3, posy = 6, posz = -7.6, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun3 = { + lightType = 'point', + pieceName = 'rcannon', + lightConfig = { posx = -0.3, posy = 6, posz = -10, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun4 = { + lightType = 'point', + pieceName = 'rcannon', + lightConfig = { posx = -0.3, posy = 6, posz = 6.2, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- gun1 = { - -- lightType = 'point', - -- pieceName = 'rcannon', - -- lightConfig = { posx = -0.3, posy = 6, posz = -5.2, radius = 6, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 45, - -- r = 1, g = 1, b = 1, a = 0.25, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- gun2 = { - -- lightType = 'point', - -- pieceName = 'rcannon', - -- lightConfig = { posx = -0.3, posy = 6, posz = -7.6, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 50, - -- r = 1, g = 0, b = 0, a = 0.9, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- gun3 = { - -- lightType = 'point', - -- pieceName = 'rcannon', - -- lightConfig = { posx = -0.3, posy = 6, posz = -10, radius = 6, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- gun4 = { - -- lightType = 'point', - -- pieceName = 'rcannon', - -- lightConfig = { posx = -0.3, posy = 6, posz = 6.2, radius = 6, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, gun5 = { lightType = 'point', pieceName = 'rcannon', - lightConfig = { posx = -0.3, posy = 6, posz = 8.6, radius = 2.5, - color2r = -5, color2g = -5, color2b = -5, colortime = 50, - r = 1, g = 0, b = 0, a = 0.9, + lightConfig = { posx = -0.3, posy = 6, posz = 8.6, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun6 = { + lightType = 'point', + pieceName = 'rcannon', + lightConfig = { posx = -0.3, posy = 6, posz = 11, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun7 = { + lightType = 'point', + pieceName = 'lcannon', + lightConfig = { posx = 0.3, posy = 6, posz = -5.2, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun8 = { + lightType = 'point', + pieceName = 'lcannon', + lightConfig = { posx = 0.3, posy = 6, posz = -7.6, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun9 = { + lightType = 'point', + pieceName = 'lcannon', + lightConfig = { posx = 0.3, posy = 6, posz = -10, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun10 = { + lightType = 'point', + pieceName = 'lcannon', + lightConfig = { posx = 0.3, posy = 6, posz = 6.2, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- gun6 = { - -- lightType = 'point', - -- pieceName = 'rcannon', - -- lightConfig = { posx = -0.3, posy = 6, posz = 11, radius = 6, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- gun7 = { - -- lightType = 'point', - -- pieceName = 'lcannon', - -- lightConfig = { posx = 0.3, posy = 6, posz = -5.2, radius = 6, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- gun8 = { - -- lightType = 'point', - -- pieceName = 'lcannon', - -- lightConfig = { posx = 0.3, posy = 6, posz = -7.6, radius = 4, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 50, - -- r = 1, g = 0, b = 0, a = 0.9, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- gun9 = { - -- lightType = 'point', - -- pieceName = 'lcannon', - -- lightConfig = { posx = 0.3, posy = 6, posz = -10, radius = 6, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- gun10 = { - -- lightType = 'point', - -- pieceName = 'lcannon', - -- lightConfig = { posx = 0.3, posy = 6, posz = 6.2, radius = 6, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, gun11 = { lightType = 'point', pieceName = 'lcannon', - lightConfig = { posx = 0.3, posy = 6, posz = 8.6, radius = 2.5, - color2r = -5, color2g = -5, color2b = -5, colortime = 50, - r = 1, g = 0, b = 0, a = 0.9, + lightConfig = { posx = 0.3, posy = 6, posz = 8.6, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + gun12 = { + lightType = 'point', + pieceName = 'lcannon', + lightConfig = { posx = 0.3, posy = 6, posz = 11, radius = 6, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + mid = { + lightType = 'point', + pieceName = 'pelvis', + lightConfig = { posx = 0, posy = 8, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.12, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - -- gun12 = { - -- lightType = 'point', - -- pieceName = 'lcannon', - -- lightConfig = { posx = 0.3, posy = 6, posz = 11, radius = 6, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 0, - -- r = 1, g = 1, b = 1, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- mid = { - -- lightType = 'point', - -- pieceName = 'pelvis', - -- lightConfig = { posx = 0, posy = 8, posz = 0, radius = 9, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.5, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, }, ['armmar'] = { foot1 = { lightType = 'point', pieceName = 'rfoot', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, foot2 = { lightType = 'point', pieceName = 'lfoot', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - leg1A = { + leg1 = { lightType = 'point', pieceName = 'rleg', - lightConfig = { posx = -3.5, posy = 5, posz = -5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 3.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.5, posy = 6, posz = -6, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - leg2A = { + leg2 = { lightType = 'point', pieceName = 'lleg', - lightConfig = { posx = 3.5, posy = 5, posz = -5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 3.8, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2.5, posy = 6, posz = -6, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, mid = { lightType = 'point', @@ -28028,872 +20026,384 @@ local unitLights = { color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.07, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, turbine1 = { lightType = 'point', pieceName = 'rturbine', - lightConfig = { posx = 0, posy = 0, posz = -0.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = -0.5, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, turbine2 = { lightType = 'point', pieceName = 'lturbine', - lightConfig = { posx = 0, posy = 0, posz = -0.5, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 0.8, - modelfactor = 0.4, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 15, posz = -6, radius = 18, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 13, posz = 2, radius = 22, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'torso', - -- lightConfig = { posx = 0, posy = 9, posz = 10, radius = 18, - -- color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, - -- r = 1, g = 1, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - frontlighttop = { - lightType = 'beam', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 13, posz = -6, radius = 7.4, - pos2x = 0, pos2y = 5, pos2z = 9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.3, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 0, posz = -0.5, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - frontlightleft = { + eyes1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 8.4, posy = 5, posz = 2.5, radius = 3, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 15, posz = -6, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - frontlightright = { + eyes2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -8.4, posy = 5, posz = 2.5, radius = 3, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.25, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlightleft = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 8, posy = 6, posz = -2, radius = 120, - dirx = 0.07, diry = -0.08, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13, posz = 2, radius = 22, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - searchlightright = { - lightType = 'cone', + eyes3 = { + lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -8, posy = 6, posz = -2, radius = 120, - dirx = -0.07, diry = -0.08, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 9, posz = 10, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - back1mid = { + back1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 9, posz = -16, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 0, posy = 11, posz = -18, radius = 15, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back1 = { lightType = 'point', pieceName = 'ruparm', - lightConfig = { posx = -5, posy = 0, posz = -8, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = -5, posy = 0, posz = -8, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back2 = { lightType = 'point', pieceName = 'luparm', - lightConfig = { posx = 5, posy = 0, posz = -8, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.55, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 5, posy = 0, posz = -8, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, turret1 = { lightType = 'point', pieceName = 'ruparm', - lightConfig = { posx = -5, posy = 0, posz = 9, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 0, posz = 9, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, turret2 = { lightType = 'point', pieceName = 'luparm', - lightConfig = { posx = 5, posy = 0, posz = 9, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.2, g = 1, b = 0.2, a = 0.3, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 0, posz = 9, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, thigh1 = { lightType = 'point', pieceName = 'rthigh', - lightConfig = { posx = -7, posy = 0.7, posz = 1, radius = 1.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7, posy = 0.7, posz = 1, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, thigh2 = { lightType = 'point', pieceName = 'lthigh', - lightConfig = { posx = 7, posy = 0.7, posz = 1, radius = 1.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7, posy = 0.7, posz = 1, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, knee1 = { lightType = 'point', pieceName = 'rleg', - lightConfig = { posx = -5, posy = 0.5, posz = 0, radius = 1.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 0.5, posz = 0, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, knee2 = { lightType = 'point', pieceName = 'lleg', - lightConfig = { posx = 5, posy = 0.5, posz = 0, radius = 1.4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 0.5, posz = 0, radius = 8, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, leg1 = { lightType = 'point', pieceName = 'rleg', - lightConfig = { posx = -2, posy = -9, posz = 0, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2, posy = -9, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, leg2 = { lightType = 'point', pieceName = 'lleg', - lightConfig = { posx = 2, posy = -9, posz = 0, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.44, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2, posy = -9, posz = 0, radius = 12, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['armamb'] = { - -- sleeve1beam = { --needs BOS update to show/hide part - light shines through closed version - -- lightType = 'beam', - -- pieceName = 'turret', - -- lightConfig = { posx = 0, posy = 7, posz = -8, radius = 3.5, - -- pos2x = 0, pos2y = 7, pos2z = 0, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.2, g = 1, b = 0.2, a = 1.2, - -- modelfactor = 0.5, specular = 0.2, scattering = 1.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - teamflashl = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 12.5, posy = 0, posz = 0, radius = 2.4, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashr = { + base1 = { lightType = 'point', pieceName = 'turret', - lightConfig = { posx = -12.5, posy = 0, posz = 0, radius = 2.4, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 8, posz = -3.5, radius = 21, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['armguard'] = { base1 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 21, posz = 19, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 0, posy = 21, posz = 19, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base2 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = 21, posz = -19, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 0, posy = 21, posz = -19, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base3 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = -16, posy = 21, posz = 9, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = -16, posy = 21, posz = 9, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base4 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 16, posy = 21, posz = 9, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 16, posy = 21, posz = 9, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base5 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 16, posy = 21, posz = -9, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = 16, posy = 21, posz = -9, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, base6 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = -16, posy = 21, posz = -9, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - sleeve1beam = { - lightType = 'beam', - pieceName = 'sleeves', - lightConfig = { posx = 3.5, posy = 2, posz = 14.3, radius = 5, - pos2x = 3.5, pos2y = 2, pos2z = 9, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 2.0, color2g = 1.8, color2b = 0.5, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.5, specular = 0.2, scattering = 1.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sleeve2beam = { - lightType = 'beam', - pieceName = 'sleeves', - lightConfig = { posx = -3.5, posy = 2, posz = 14.3, radius = 5, - pos2x = -3.5, pos2y = 2, pos2z = 9, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 2.0, color2g = 1.8, color2b = 0.5, colortime = 45, - r = 1.2, g = 1, b = 0.2, a = 1.5, - modelfactor = 0.5, specular = 0.2, scattering = 1.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- sleeves1 = { - -- lightType = 'point', - -- pieceName = 'sleeves', - -- lightConfig = { posx = 3.5, posy = 4, posz = 10.5, radius = 12, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1.2, g = 1, b = 0.2, a = 1, - -- modelfactor = 0.6, specular = 0.3, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- sleeves2 = { - -- lightType = 'point', - -- pieceName = 'sleeves', - -- lightConfig = { posx = -3.5, posy = 4, posz = 10.5, radius = 12, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 40, - -- r = 1.2, g = 1, b = 0.2, a = 1, - -- modelfactor = 0.6, specular = 0.3, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - teamflashl = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = 15, posy = 0, posz = 0, radius = 2.4, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamflashr = { - lightType = 'point', - pieceName = 'sleeves', - lightConfig = { posx = -15, posy = 0, posz = 0, radius = 2.4, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -16, posy = 21, posz = -9, radius = 17, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - }, - ['corpun'] = { - -- base1 = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 21, posz = 19, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- base2 = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 0, posy = 21, posz = -19, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- base3 = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = -16, posy = 21, posz = 9, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - -- base4 = { - -- lightType = 'point', - -- pieceName = 'head', - -- lightConfig = { posx = 16, posy = 21, posz = 9, radius = 8, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1, - -- r = 1.2, g = 1, b = 0.2, a = 0.6, - -- modelfactor = 0.4, specular = 0.3, scattering = 0.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0 }, - -- }, - sleeve1beam = { - lightType = 'beam', - pieceName = 'sleeves', - lightConfig = { posx = -4.2, posy = 6, posz = 18.3, radius = 1, - pos2x = -4.2, pos2y = 6, pos2z = 8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 1.2, color2g = 1, color2b = 0.2, colortime = 45, - r = 0.6, g = 0.5, b = 0.1, a = 1.5, - modelfactor = 0.5, specular = 0.2, scattering = 3.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - sleeve2beam = { - lightType = 'beam', - pieceName = 'sleeves', - lightConfig = { posx = 4.2, posy = 6, posz = 18.3, radius = 1, - pos2x = 4.2, pos2y = 6, pos2z = 8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 1.2, color2g = 1, color2b = 0.2, colortime = 45, - r = 0.6, g = 0.5, b = 0.1, a = 1.5, - modelfactor = 0.5, specular = 0.2, scattering = 3.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- sleeve2beam = { - -- lightType = 'beam', - -- pieceName = 'sleeves', - -- lightConfig = { posx = -3.5, posy = 2, posz = 14.3, radius = 5, - -- pos2x = -3.5, pos2y = 2, pos2z = 9, - -- --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = 2.0, color2g = 1.8, color2b = 0.5, colortime = 45, - -- r = 1.2, g = 1, b = 0.2, a = 1.5, - -- modelfactor = 0.5, specular = 0.2, scattering = 1.4, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - teamflashl = { + sleeves1 = { lightType = 'point', pieceName = 'sleeves', - lightConfig = { posx = 12, posy = 0, posz = -4, radius = 2.4, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3.5, posy = 2.5, posz = 12.5, radius = 25, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, - teamflashr = { + sleeves2 = { lightType = 'point', pieceName = 'sleeves', - lightConfig = { posx = -12, posy = 0, posz = -4, radius = 2.4, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -3.5, posy = 2.5, posz = 12.5, radius = 25, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['corcat'] = { eyes = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 0, posy = -0.5, posz = 21.5, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = -0.5, posz = 21.5, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, front1 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = -8.3, posy = -6.5, posz = 25, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lightConfig = { posx = -8.5, posy = -7.3, posz = 27, radius = 14, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, front2 = { lightType = 'point', pieceName = 'head', - lightConfig = { posx = 8.3, posy = -6.5, posz = 25, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 1, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - headlightr = { -- this is the lightname - lightType = 'cone', - pieceName = 'head', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -8.3, posy = -6.5, posz = 20, radius = 110, colortime = -2, - dirx = 0, diry = -0.02, dirz = 1, theta = 0.20, - r = 1, g = 1, b = 0.89, a = 0.34, - color2r = 0, color2g = 0, color2b = 0, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightl = { -- this is the lightname - lightType = 'cone', - pieceName = 'head', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 8.3, posy = -6.5, posz = 20, radius = 110, colortime = -2, - dirx = 0, diry = -0.02, dirz = 1, theta = 0.20, - r = 1, g = 1, b = 0.89, a = 0.34, - color2r = 0, color2g = 0, color2b = 0, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 8.5, posy = -7.3, posz = 27, radius = 14, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, turret1 = { lightType = 'point', pieceName = 'rturret', - lightConfig = { posx = -23.6, posy = 13.3, posz = 8.3, radius = 4, - color2r = -7, color2g = -7, color2b = -7, colortime = 45, - r = 1, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -24, posy = 14, posz = 8, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, turret2 = { lightType = 'point', pieceName = 'lturret', - lightConfig = { posx = 23.6, posy = 13.3, posz = 8.3, radius = 4, - color2r = -7, color2g = -7, color2b = -7, colortime = 45, - r = 1, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 24, posy = 14, posz = 8, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back1 = { lightType = 'point', pieceName = 'thing', - lightConfig = { posx = -13, posy = 4.5, posz = 3, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -11, posy = 4.5, posz = 3, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back2 = { lightType = 'point', pieceName = 'thing', - lightConfig = { posx = 13, posy = 4.5, posz = 3, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 11, posy = 4.5, posz = 3, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back3 = { lightType = 'point', pieceName = 'thing', - lightConfig = { posx = -13, posy = -4.7, posz = 2.7, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -11, posy = -4.7, posz = 2.7, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back4 = { lightType = 'point', pieceName = 'thing', - lightConfig = { posx = 13, posy = -0.5, posz = 5.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 11, posy = -0.5, posz = 5.5, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back5 = { lightType = 'point', pieceName = 'thing', - lightConfig = { posx = -13, posy = 0.5, posz = -5.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -11, posy = 0.5, posz = -5.5, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, back6 = { lightType = 'point', pieceName = 'thing', - lightConfig = { posx = 13, posy = 0.5, posz = -5.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.75, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 11, posy = 0.5, posz = -5.5, radius = 16, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, - ['corshiva'] = { - eyes = { - lightType = 'beam', - pieceName = 'torso', - lightConfig = { posx = 3.20, posy = 8.3, posz = 33, radius = 1.5, - pos2x = -3.2, pos2y = 8.3, pos2z = 33, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, eyes = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 8.3, posz = 35, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightl = { -- this is the lightname - lightType = 'cone', - pieceName = 'torso', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 8, posy = 7, posz = 28, radius = 95, colortime = -2.5, - dirx = 0, diry = 0, dirz = 1, theta = 0.25, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightr = { -- this is the lightname - lightType = 'cone', - pieceName = 'torso', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -8, posy = 7, posz = 28, radius = 95, colortime = -2, - dirx = 0, diry = 0, dirz = 1, theta = 0.25, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 9, posz = 35, radius = 21, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - redlauncherl = { + top1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0, posy = 18, posz = -7.5, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = 1, g = 0, b = 0, a = 1, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -9.5, posy = 18, posz = -3.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - topgunplasma = { + top2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 0.0, posy = 20.4, posz = 13.6, radius = 0.8, - color2r = -3, color2g = -3, color2b = -3, colortime = 45, - r = -1, g = 0.8, b = 0.2, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - - ['cordoom'] = { - -- searchlightmaintop = { - -- lightType = 'cone', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = -6.5, posy = 6.5, posz = -10, radius = 350, - -- dirx = 0, diry = 0, dirz = 1, theta = 0.15, - -- r = 1, g = 1, b = 1, a = 0.45, - -- modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- headlightsourcefrontr = { - -- lightType = 'point', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = -5.8, posy = 6.4, posz = -2.8, radius = 1.9, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 2, - -- modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - searchlightbluelaser = { - lightType = 'cone', - pieceName = 'barrelb', - lightConfig = { posx = 0, posy = -1, posz = -1, radius = 350, colortime = 60, - dirx = 0, diry = 0, dirz = 1, theta = 0.09, - r = 0.5, g = 0.5, b = 1, a = 0.55, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - bluelightzoomlight = { - lightType = 'point', - pieceName = 'barrelb', - lightConfig = { posx = 0, posy = -1, posz = 18, radius = 20, - dirx = 0, diry = 0, dirz = 0.5, theta = -4, - color2r = -1.0, color2g = -1.0, color2b = -1.0, colortime = 60, - r = 0.1, g = 0.3, b = 1.2, a = 2.5, - modelfactor = 1.7, specular = 0.8, scattering = 0.4, lensflare = 13, - lifetime = 0, sustain = 0, selfshadowing = 4}, - }, - searchlightgreenlaser = { - lightType = 'cone', - pieceName = 'barrelg', - lightConfig = { posx = 0, posy = 0, posz = -15, radius = 50, - dirx = 0, diry = 0, dirz = 1, theta = 0.11, - color2r = -5, color2g = -5, color2b = -5, colortime = 60, - r = 0.5, g = 1, b = 0.5, a = 0.55, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - -- headlightsourcemainside = { - -- lightType = 'beam', - -- pieceName = 'barrelg', - -- lightConfig = { posx = -14, posy = 2.2, posz = -7, radius = 3.8, - -- pos2x = -14, pos2y = -4, pos2z = -7.1, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -2, - -- r = 1, g = 1, b = 1, a = 0.9, - -- modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- headlightsourcefrontrb = { - -- lightType = 'beam', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = -5.5, posy = 6, posz = -2.8, radius = 1.2, - -- pos2x = -5.9, pos2y = 6.4, pos2z = -3, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = 1, g = 1, b = 1, a = 2, - -- modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- weaponsglowmain = { - -- lightType = 'cone', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = 0, posy = 0, posz = -40, radius = 70, - -- dirx = 0, diry = 0, dirz = 1, theta = 0.10, - -- color2r = 0.18, color2g = 0.08, color2b = 0.03, colortime = 60, - -- r = 1.2, g = 0.8, b = 0.2, a = 1.2, - -- modelfactor = 0, specular = 1, scattering = 3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- redglow = { - -- lightType = 'point', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = 0, posy = 0, posz = 5, radius = 7, - -- color2r = 0.18, color2g = 0.08, color2b = 0.03, colortime = 120, - -- r = 1, g = 0.15, b = 0.06, a = 1.5, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- redburn = { - -- lightType = 'point', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = 0, posy = 0, posz = 2, radius = 7, - -- dirx = 0, diry = 0, dirz = 0.25, theta = -1.9, - -- color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 14, - -- r = 0.95, g = 0.66, b = 0.07, a = 0.4, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- yellowaccentburn = { - -- lightType = 'point', - -- pieceName = 'mainbarrel', - -- lightConfig = { posx = 0, posy = 0, posz = 0, radius = 7, - -- dirx = 0, diry = 0, dirz = 0.14, theta = -2.1, - -- color2r = 0.8, color2g = 0.7, color2b = 0.05, colortime = 14, - -- r = 0.95, g = 0.66, b = 0.07, a = 0.4, - -- modelfactor = 0.5, specular = 0.2, scattering = 0.1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - lasergreentip = { - lightType = 'point', - pieceName = 'barrelg', - lightConfig = { posx = 0.2, posy = 0.1, posz = 5.1, radius = 2.5, - color2r = -20, color2g = -20, color2b = -20, colortime = 60, - r = 0, g = 2, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 9.5, posy = 18, posz = -3.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - laserredtipl = { + top3 = { lightType = 'point', - pieceName = 'barrelr', - lightConfig = { posx = 12, posy = 0.2, posz = 31.5, radius = 2.3, - color2r = -30, color2g = -30, color2b = -30, colortime = 45, - r = 1, g = 0, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'torso', + lightConfig = { posx = -9.5, posy = 18, posz = -11.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - laserredtipr = { + top4 = { lightType = 'point', - pieceName = 'barrelr', - lightConfig = { posx = -11.9, posy = 0.2, posz = 31.5, radius = 2.3, - color2r = -30, color2g = -30, color2b = -30, colortime = 45, - r = 1, g = 0, b = 0, a = 1.5, - modelfactor = 0.6, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - - }, - - ['cordemon'] = { - eyes = { - lightType = 'beam', - pieceName = 'head', - lightConfig = { posx = 2.2, posy = 7.5, posz = 8.5, radius = 2.8, - pos2x = -2.2, pos2y = 7.5, pos2z = 8.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 1.9, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flamelightlbig = { - lightType = 'point', - pieceName = 'lfbarrel1', - lightConfig = { posx = 0, posy = 1.6, posz = 2, radius = 14, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 5, - r = 0.95, g = 0.66, b = 0.07, a = 0.7, - modelfactor = 0.4, specular = 0.9, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flamelightrbig = { - lightType = 'point', - pieceName = 'rfbarrel1', - lightConfig = { posx = 0, posy = 1.6, posz = 2, radius = 14, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 5, - r = 0.95, g = 0.66, b = 0.07, a = 0.7, - modelfactor = 0.4, specular = 0.9, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flamelightl1 = { - lightType = 'point', - pieceName = 'lfbarrel1', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 5, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 7, - r = 0.95, g = 0.66, b = 0.07, a = 0.7, - modelfactor = 0.5, specular = 0.1, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flamelightl2 = { - lightType = 'point', - pieceName = 'lfbarrel2', - lightConfig = { posx = 0, posy = 0, posz = 2.2, radius = 5, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 5, - r = 0.95, g = 0.66, b = 0.07, a = 0.7, - modelfactor = 0.5, specular = 0.1, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flamelightr1 = { - lightType = 'point', - pieceName = 'rfbarrel1', - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 5, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 5, - r = 0.95, g = 0.66, b = 0.07, a = 0.7, - modelfactor = 0.5, specular = 0.1, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - flamelightr2 = { - lightType = 'point', - pieceName = 'rfbarrel2', - lightConfig = { posx = 0, posy = 0, posz = 2.3, radius = 5, - color2r = 0.9, color2g = 0.5, color2b = 0.05, colortime = 6, - r = 0.95, g = 0.66, b = 0.07, a = 0.7, - modelfactor = 0.5, specular = 0.1, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightl = { -- this is the lightname - lightType = 'cone', - pieceName = 'boxl', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 95, colortime = -2, - dirx = 0, diry = 0, dirz = 1, theta = 0.25, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlightr = { -- this is the lightname - lightType = 'cone', - pieceName = 'boxr', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 0, posz = 2, radius = 95, colortime = -2, - dirx = 0, diry = 0, dirz = 1, theta = 0.25, - r = 1, g = 1, b = 0.89, a = 0.34, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalights1 = { - lightType = 'beam', - pieceName = 'boxl', - lightConfig = { posx = 0, posy = 3.3, posz = -2.3, radius = 2.6, - pos2x = 0, pos2y = 3.4, pos2z = -0.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalights1red = { - lightType = 'beam', - pieceName = 'boxl', - lightConfig = { posx = -0.5, posy = 3.2, posz = 0.6, radius = 1.3, - pos2x = 0.5, pos2y = 3.2, pos2z = 0.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = -1, - r = 1, g = 0.1, b = 0.1, a = 0.5, - modelfactor = 0.4, specular = 0.1, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalights2 = { - lightType = 'beam', - pieceName = 'boxr', - lightConfig = { posx = 0, posy = 3.3, posz = -2.3, radius = 2.6, - pos2x = 0, pos2y = 3.4, pos2z = -0.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aalights2red = { - lightType = 'beam', - pieceName = 'boxr', - lightConfig = { posx = -0.5, posy = 3.2, posz = 0.6, radius = 1.3, - pos2x = 0.5, pos2y = 3.2, pos2z = 0.6, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = -1, - r = 1, g = 0.1, b = 0.1, a = 0.5, - modelfactor = 0.4, specular = 0.1, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'torso', + lightConfig = { posx = 9.5, posy = 18, posz = -11.5, radius = 8, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['coracv'] = { @@ -28904,7 +20414,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2.5, modelfactor = 0.1, specular = 0.2, scattering = 1.8, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -28913,25 +20423,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2.5, modelfactor = 0.1, specular = 0.2, scattering = 1.8, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash1 = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = -2.1, posy = 2.1, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash2 = { - lightType = 'point', - pieceName = 'cagelight2', - lightConfig = { posx = 2.1, posy = 2.1, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -28940,7 +20432,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, nanolight2 = { lightType = 'point', @@ -28949,277 +20441,90 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, - eyesleft = { - lightType = 'beam', + eyes1 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 4.4, posy = 18.6, posz = 23.3, radius = 2, - pos2x = 4.4, pos2y = 18.6, pos2z = 11.3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 18.5, posz = 27, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesright = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4.4, posy = 18.6, posz = 23.3, radius = 2, - pos2x = -4.4, pos2y = 18.6, pos2z = 11.3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.5, posy = 18.5, posz = 17, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - eyesmid = { - lightType = 'beam', + eyes3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -4, posy = 18.6, posz = 23.3, radius = 2, - pos2x = 4, pos2y = 18.6, pos2z = 23.3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.5, posy = 18.5, posz = 17, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlight = { - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 21, posz = 21, radius = 34, - dirx = -0.06, diry = -0.77, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.25, colortime = -3, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 18.5, posz = 27, radius = 14, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.12, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.5, posy = 18.5, posz = 17, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.5, posy = 18.5, posz = 17, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corgol'] = { base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 21, posy = 19.5, posz = -3, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - base1B = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 23.1, posy = 17.3, posz = -3, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redlightside = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 21, posy = 19.5, posz = -9, radius = 35, colortime = -2, - dirx = 0, diry = 0, dirz = 1, theta = 0.2, - r = 1, g = 0.5, b = 0.5, a = 1.9, - modelfactor = 0.5, specular = 0.3, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redlightside2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -21, posy = 19.5, posz = -9, radius = 35, colortime = -2, - dirx = 0, diry = 0, dirz = 1, theta = 0.2, - r = 1, g = 0.5, b = 0.5, a = 1.9, - modelfactor = 0.5, specular = 0.3, scattering = 3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 22, posy = 19, posz = -3, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -21, posy = 19.5, posz = -3, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -22, posy = 19, posz = -3, radius = 17, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - base2B = { + back1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -23.1, posy = 17.3, posz = -3, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 0.2, b = 0.2, a = 0.9, - modelfactor = 0.4, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backleft1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 19.5, posy = 18.8, posz = -16.5, radius = 2, - pos2x = 13.5, pos2y = 18.8, pos2z = -16.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backleft2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 19.5, posy = 18.8, posz = -21, radius = 2, - pos2x = 13.5, pos2y = 18.8, pos2z = -21, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backleft3 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 19.5, posy = 18.8, posz = -25.5, radius = 2, - pos2x = 13.5, pos2y = 18.8, pos2z = -25.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backleft1side = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 20.8, posy = 18.5, posz = -16.5, radius = 2, - pos2x = 23.8, pos2y = 14.6, pos2z = -16.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backleft2side = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 20.8, posy = 18.5, posz = -21, radius = 2, - pos2x = 23.8, pos2y = 14.6, pos2z = -21, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backleft3side = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 20.8, posy = 18.5, posz = -25.5, radius = 2, - pos2x = 23.8, pos2y = 14.6, pos2z = -25.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backright1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -19.5, posy = 18.8, posz = -16.5, radius = 2, - pos2x = -13.5, pos2y = 18.8, pos2z = -16.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backright2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -19.5, posy = 18.8, posz = -21, radius = 2, - pos2x = -13.5, pos2y = 18.8, pos2z = -21, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backright3 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -19.5, posy = 18.8, posz = -25.5, radius = 2, - pos2x = -13.5, pos2y = 18.8, pos2z = -25.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backright1side = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -20.8, posy = 18.5, posz = -16.5, radius = 2, - pos2x = -23.8, pos2y = 14.6, pos2z = -16.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - backright2side = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -20.8, posy = 18.5, posz = -21, radius = 2, - pos2x = -23.8, pos2y = 14.6, pos2z = -21, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 15, posy = 24, posz = -21, radius = 22, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - backright3side = { - lightType = 'beam', + back2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -20.8, posy = 18.5, posz = -25.5, radius = 2, - pos2x = -23.8, pos2y = 14.6, pos2z = -25.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.5, - modelfactor = 0.4, specular = 0.3, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 26, posy = 17, posz = -21, radius = 22, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - headlightsourcefront = { - lightType = 'beam', + back3 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = -1.2, posy = 13.2, posz = 24.7, radius = 1.6, - pos2x = 1.2, pos2y = 13.2, pos2z = 24.7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 13, posz = 25, radius = 55, colortime = -2, - dirx = 0, diry = -0.3, dirz = 1, theta = 0.98, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -15, posy = 24, posz = -21, radius = 22, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - barrelglow = { + back4 = { lightType = 'point', - pieceName = 'barrel', - lightConfig = { posx = 0, posy = 0, posz = 8.9, radius = 3, - color2r = 0.7, color2g = 0.35, color2b = 0.05, colortime = 60, - r = 1.2, g = 0.80, b = 0.12, a = 1.5, - modelfactor = 0.2, specular = 0.1, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base', + lightConfig = { posx = -26, posy = 17, posz = -21, radius = 22, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corgolt4'] = { @@ -29230,7 +20535,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', @@ -29239,7 +20544,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back1 = { lightType = 'point', @@ -29248,7 +20553,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', @@ -29257,7 +20562,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back3 = { lightType = 'point', @@ -29266,7 +20571,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back4 = { lightType = 'point', @@ -29275,468 +20580,134 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormabm'] = { - orangelightcenter = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 0, posy = 22, posz = -5, radius = 7.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - - }, - orangelight1A = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = -17.0, posy = 6.0, posz = 3.3, radius = 3.5, - color2r = 2, color2g = 0.8, color2b = 0, colortime = 15, - r = 0, g = 0, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - orangelight1B = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = -17.0, posy = 6.0, posz = -11.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - orangelight2A = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 17.0, posy = 6.0, posz = 3.3, radius = 3.5, - color2r = 2, color2g = 0.8, color2b = 0, colortime = 15, - r = 0, g = 0, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - orangelight2B = { - lightType = 'point', - pieceName = 'orangelight', - alliedOnly = true, - lightConfig = { posx = 17.0, posy = 6.0, posz = -11.2, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = 15, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = 0.1, specular = 0.5, scattering = 0.66, lensflare = 18, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -4.3, posy = 4.8, posz = 29.7, radius = 2, - pos2x = 4.3, pos2y = 4.8, pos2z = 29.7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesright = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -5.5, posy = 4.8, posz = 28.2, radius = 2, - pos2x = -5.5, pos2y = 4.8, pos2z = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - eyesleft = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 5.5, posy = 4.8, posz = 28.2, radius = 2, - pos2x = 5.5, pos2y = 4.8, pos2z = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 0.2, b = 0.2, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - greenlight1 = { - lightType = 'point', - pieceName = 'greendbr', - alliedOnly = true, - lightConfig = { posx = -11.4, posy = 13.4, posz = -11.4, radius = 12, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.2, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - - }, - greenlight2 = { - lightType = 'point', - pieceName = 'greendbl', - alliedOnly = true, - lightConfig = { posx = 11.4, posy = 16.4, posz = -11.4, radius = 16, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.2, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - greenlight3 = { - lightType = 'point', - pieceName = 'greendtr', - alliedOnly = true, - lightConfig = { posx = -11.4, posy = 16.4, posz = 11.4, radius = 16, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.2, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - greenlight4 = { - lightType = 'point', - pieceName = 'greendtl', - alliedOnly = true, - lightConfig = { posx = 11.4, posy = 13.4, posz = 11.4, radius = 16, - color2r = 2.5, color2g = 1.15, color2b = 0, colortime = 60, - r = 2, g = 0.8, b = 0, a = 1, - modelfactor = -0.1, specular = 0.3, scattering = 0.2, lensflare = 3, - lifetime = 0, sustain = 0, selfshadowing = 2}, - }, - teamlauncher1 = { - lightType = 'point', - pieceName = 'dtr', - lightConfig = { posx = -12.2, posy = 3.5, posz = 12.2, radius = 2.0, - dirx = 0, diry = 1, dirz = 0, theta = -5.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0, b = 0, a = 1, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlauncher2 = { - lightType = 'point', - pieceName = 'dtl', - lightConfig = { posx = 12.2, posy = 0.5, posz = 12.2, radius = 2.0, - dirx = 0, diry = 1, dirz = 0, theta = -5.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0, b = 0, a = 1, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlauncher3 = { - lightType = 'point', - pieceName = 'dbr', - lightConfig = { posx = -12.2, posy = 0.5, posz = -12.2, radius = 2.0, - dirx = 0, diry = 1, dirz = 0, theta = -5.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0, b = 0, a = 1, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamlauncher4 = { - lightType = 'point', - pieceName = 'dbl', - lightConfig = { posx = 12.2, posy = 3.5, posz = -12.2, radius = 2.0, - dirx = 0, diry = 1, dirz = 0, theta = -5.8, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0, b = 0, a = 1, - modelfactor = 0.6, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 4, posz = 25, radius = 35, colortime = -2, - dirx = 0, diry = -0.3, dirz = 1, theta = 0.98, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 4.5, posz = 39, radius = 14, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.12, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 7.5, posy = 4.5, posz = 29, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -7.5, posy = 4.5, posz = 29, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.09, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes5 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 7.5, posy = 4.5, posz = 22, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes6 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -7.5, posy = 4.5, posz = 22, radius = 12, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - }, - ['corgarp'] = { eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 5.5, posz = 20.8, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = 1, g = 0.2, b = 0.2, a = 0.65, - modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corlevlr'] = { - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 5, posz = 2, radius = 45, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.8, - r = 1, g = 1, b = 0.89, a = 0.35, colortime = -5, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 4.5, posz = 39, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.12, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - backleft = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5, posy = 6, posz = -16, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.2, b = 0.2, a = 1.2, + lightConfig = { posx = 7.5, posy = 4.5, posz = 29, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - backright = { + eyes3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5, posy = 6, posz = -16, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 0.2, b = 0.2, a = 1.2, + lightConfig = { posx = -7.5, posy = 4.5, posz = 29, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, - flashfront1 = { + eyes5 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.7, posy = 12.5, posz = 9.1, radius = 2.8, - dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7.5, posy = 4.5, posz = 22, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - flashfront2 = { + eyes6 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.7, posy = 12.5, posz = 9.1, radius = 2.8, - dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = -1, color2g = -1, color2b = -1, colortime = 30, - r = 1, g = 0.1, b = 0.1, a = 2.5, - modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7.5, posy = 4.5, posz = 22, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- flashfrontcenter = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 12.5, posz = 12, radius = 2, - -- dirx = 0, diry = 0, dirz = 1, theta = -2, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 0.1, b = 0.1, a = 2.9, - -- modelfactor = 0.8, specular = 0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- flashfrontleft = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 12, posy = 12, posz = 9, radius = 2.5, - -- dirx = 0, diry = 0, dirz = 1, theta = -4.9, - -- color2r = -1, color2g = -1, color2b = -1, colortime = 30, - -- r = 1, g = 0.1, b = 0.1, a = 5.5, - -- modelfactor = 0.8, specular = -0.2, scattering = 0, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - leftbeam = { - lightType = 'beam', - pieceName = 'reye', - lightConfig = { posx = 12, posy = 12, posz = 4.2, radius = 3, - pos2x = 12, pos2y = 12, pos2z = 10.8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = 145, - r = -1, g = 0.1, b = 0.1, a = 1.5, - modelfactor = 0.5, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - rightbeam = { - lightType = 'beam', - pieceName = 'reye', - lightConfig = { posx = -12, posy = 12, posz = 4.2, radius = 3, - pos2x = -12, pos2y = 12, pos2z = 10.8, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = 145, - r = -1, g = 0.1, b = 0.1, a = 1.5, - modelfactor = 0.5, specular = 0.2, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - -- frontleft = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 12, posy = 12, posz = 11, radius = 5, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -2, - -- r = -1, g = 1, b = 1, a = 1.2, - -- modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- frontright = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -12, posy = 12, posz = 11, radius = 5, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - -- r = -1, g = 1, b = 1, a = 1.2, - -- modelfactor = 0.4, specular = 0.2, scattering = 0.5, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 16, posz = 8.5, radius = 7, - -- color2r = 0, color2g = 0, color2b = 0, colortime = -2, - -- r = -11, g = 1, b = 1, a = 0.7, - -- modelfactor = 0.4, specular = 0.2, scattering = 1, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 5, posy = 13, posz = 4, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -5, posy = 13, posz = 4, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, - ['corraid'] = { - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'justattachtobase', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 9, posz = 7, radius = 75, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.8, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - back1 = { + ['corgarp'] = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -11.3, posy = 9, posz = -20, radius = 4, - color2r = 0.45, color2g = 0.15, color2b = 0.15, colortime = -1, - r = -1, g = 0.15, b = 0.15, a = 1.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5.5, posz = 21.2, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - back2 = { + }, + ['corlevlr'] = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 11.3, posy = 9, posz = -20, radius = 4, - color2r = 0.45, color2g = 0.15, color2b = 0.15, colortime = -1, - r = -1, g = 0.15, b = 0.15, a = 1.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.15, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 13, posz = 11, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - front = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 13, posz = 13.5, radius = 8, - color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 0, - r = -1, g = 0.15, b = 0.15, a = 0.4 , - modelfactor = 0.5, specular = 0.3, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corwolv'] = { - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 5, posz = 2, radius = 55, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.8, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 13, posz = 4, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - back1 = { + eyes3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10.3, posy = 9, posz = -22, radius = 6, - color2r = 0.45, color2g = 0.15, color2b = 0.15, colortime = -1, - r = -1, g = 0.15, b = 0.15, a = 1.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 13, posz = 4, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - back2 = { + }, + ['corraid'] = { + eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10.3, posy = 9, posz = -22, radius = 6, - color2r = 0.45, color2g = 0.15, color2b = 0.15, colortime = -1, - r = -1, g = 0.15, b = 0.15, a = 1.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -11.5, posy = 9, posz = -22, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - front = { + eyes2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6, posz = 6.5, radius = 6, - color2r = 0.3, color2g = 0.3, color2b = 0.3, colortime = 0, - r = 1, g = 1, b = 1, a = 0.4 , - modelfactor = 0.5, specular = 0.3, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 11.5, posy = 9, posz = -22, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormlv'] = { nanolight = { lightType = 'point', pieceName = 'flare', - lightConfig = { posx = 0, posy = 2, posz = 1, radius = 12, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + r = -1, g = 1, b = 1, a = 0.25, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0 }, }, cloaklightred = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6.7, posz = 13, radius = 4, + lightConfig = { posx = 0, posy = 6, posz = 10, radius = 9, color2r = 0, color2g = 0, color2b = 1, colortime = 0, - r = 1, g = 0, b = 0, a = 0.8, + r = 1, g = 0, b = 0, a = 0.33, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -29745,52 +20716,34 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.065, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -7, posy = 10, posz = 10, radius = 40, - dirx = -0.2, diry = -0.05, dirz = 1, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.44, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 7, posy = 10, posz = 10, radius = 40, - dirx = 0.2, diry = -0.05, dirz = 1, theta = 0.45, - r = 1, g = 1, b = 0.89, a = 0.44, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -7, posy = 10, posz = 12, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 1, g = 1, b = 1, a = 2.2, - modelfactor = 0.9, specular = 0.5, scattering = 0.4, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5, posy = 7, posz = 9, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 7, posy = 10, posz = 12, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = 1, g = 1, b = 1, a = 2.2, - modelfactor = 0.9, specular = 0.5, scattering = 0.4, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5, posy = 7, posz = 9, radius = 12, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, canister = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10.5, posy = 8, posz = 0, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 0.95, b = 0.4, a = 0.9, + lightConfig = { posx = 7.5, posy = 5, posz = 0, radius = 13, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, turret = { lightType = 'point', @@ -29799,25 +20752,25 @@ local unitLights = { color2r = 0.8, color2g = 0.8, color2b = 1, colortime = 0, r = 0.8, g = 0.8, b = 1, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, base1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -9.8, posy = 11.5, posz = -7, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 25, - r = 1.1, g = 1, b = 0.4, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -7, posy = 8.2, posz = -5, radius = 8, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, base2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 9.8, posy = 11.5, posz = -7, radius = 4, - color2r = -4, color2g = -4, color2b = -4, colortime = 25, - r = 1.1, g = 1, b = 0.4, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7, posy = 8.2, posz = -5, radius = 8, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legmlv'] = { @@ -29828,7 +20781,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.2, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, rear1 = { lightType = 'point', @@ -29837,7 +20790,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 1, g = 0.2, b = 0.2, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legrwall'] = { @@ -29848,7 +20801,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 75, r = 0.3, g = 0.85, b = 0.3, a = 0.6, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye2 = { lightType = 'point', @@ -29857,7 +20810,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 80, r = 0.3, g = 0.85, b = 0.3, a = 0.6, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye3 = { lightType = 'point', @@ -29866,7 +20819,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 65, r = 0.3, g = 0.85, b = 0.3, a = 0.6, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye4 = { lightType = 'point', @@ -29875,7 +20828,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 70, r = 0.3, g = 0.85, b = 0.3, a = 0.6, modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, detailglow = { lightType = 'point', @@ -29884,7 +20837,54 @@ local unitLights = { color2r = 1, color2g = 0.5, color2b = 0.2, colortime = 90, r = 0.8, g = 0.3, b = 0.1, a = 0.33, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['legjav'] = { + eye1 = { + lightType = 'point', + pieceName = 'torso', + lightConfig = { posx = 0, posy = -2.55, posz = 15, radius = 4, + color2r = 0, color2g = 0, color2b = 0, colortime = 75, + r = 0.3, g = 0.85, b = 0.3, a = 0.6, + modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eye2 = { + lightType = 'point', + pieceName = 'torso', + lightConfig = { posx = 0, posy = -4.75, posz = 14.4, radius = 2, + color2r = 0, color2g = 0, color2b = 0, colortime = 80, + r = 0.3, g = 0.85, b = 0.3, a = 0.6, + modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eye3 = { + lightType = 'point', + pieceName = 'torso', + lightConfig = { posx = 0, posy = 3.75, posz = 10.3, radius = 3, + color2r = 0, color2g = 0, color2b = 0, colortime = 65, + r = 0.3, g = 0.85, b = 0.3, a = 0.6, + modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eye4 = { + lightType = 'point', + pieceName = 'aasleeve', + lightConfig = { posx = -2.75, posy = 1.25, posz = 1.8, radius = 2.5, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = 0.3, g = 0.85, b = 0.3, a = 0.6, + modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + floodlightglow = { + lightType = 'point', + pieceName = 'torso', + lightConfig = { posx = -4, posy = -6.5, posz = 11.4, radius = 2.5, + color2r = 0, color2g = 0, color2b = 0, colortime = 70, + r = 0.3, g = 0.85, b = 0.3, a = 0.6, + modelfactor = 0.15, specular = 0.3, scattering = 0.7, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormuskrat'] = { @@ -29895,7 +20895,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -29904,70 +20904,52 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 3.8, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'nano', - lightConfig = { posx = 0, posy = 1, posz = 1, radius = 16, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 1, lensflare = 15, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + r = -1, g = 1, b = 1, a = 0.25, + modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0 }, }, eyes1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 11.2, posz = 24, radius = 7, + lightConfig = { posx = 0, posy = 12, posz = 27, radius = 13, color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - r = 1, g = 0.2, b = 0.2, a = 0.8, - modelfactor = 0.5, specular = 0.3, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 4.5, posy = 12, posz = 19, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -4.5, posy = 12, posz = 19, radius = 10, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.06, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - baseleft = { + eyes2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 4.5, posy = 12, posz = 19, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eyes3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6, posy = 15.5, posz = 4, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.4, a = 0.75, - modelfactor = 0.5, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -4.5, posy = 12, posz = 19, radius = 10, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - baseright = { + base = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6, posy = 15.5, posz = 4, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 0.9, b = 0.4, a = 0.75, - modelfactor = 0.5, specular = 0.3, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 14.5, posz = 5, radius = 18, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.16, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legotter'] = { @@ -29978,7 +20960,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -29987,7 +20969,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -29996,7 +20978,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, frontlight = { lightType = 'point', @@ -30005,7 +20987,7 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, backlight = { lightType = 'point', @@ -30014,56 +20996,36 @@ local unitLights = { color2r = 0.2, color2g = 1, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.09, modelfactor = 0.4, specular = 0, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['cormist'] = { - -- eyes1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 10, posz = 19.5, radius = 14, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.07, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 7, posy = 10, posz = 11, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- eyes3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -7, posy = 10, posz = 11, radius = 11, - -- color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, - -- r = 1, g = 0.2, b = 0.2, a = 0.045, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - searchlight = { - lightType = 'cone', - pieceName = 'gun', - lightConfig = { posx = 0, posy = 0, posz = 0, radius = 180, colortime = -1.5, - dirx = 0, diry = 0.1, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + eyes1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 10, posz = 19.5, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - centerbeam = { - lightType = 'beam', + eyes2 = { + lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 13.5, posz = 7, radius = 4, - pos2x = 0, pos2y = 13.5, pos2z = 15, - --dirx = 0, diry = 0, dirz = 1, theta = -4.9, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = -1, g = 0.1, b = 0.1, a = 1.0, - modelfactor = 0.3, specular = 0.2, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 7, posy = 10, posz = 11, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + eyes3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -7, posy = 10, posz = 11, radius = 11, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.045, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armbeaver'] = { @@ -30071,64 +21033,46 @@ local unitLights = { lightType = 'cone', pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = 1, diry = 0, dirz = 0, theta = 0.99, - r = 1.3, g = 0.9, b = 0.1, a = 2, + dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 17, - dirx = -1, diry = 0, dirz = 0, theta = 0.99, - r = 1.3, g = 0.9, b = 0.1, a = 2, + dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 8, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 8, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 16, posz = 24, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 3, posy = 17, posz = 22, radius = 30, - dirx = -0.06, diry = -0.75, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.25, colortime = -3, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 16, posz = 26, radius = 17, + color2r = 1, color2g = 1, color2b = 0.4, colortime = 0, + r = 1, g = 1, b = 0.4, a = 0.11, + modelfactor = 0.4, specular = 0.5, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armch'] = { @@ -30139,7 +21083,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -30148,146 +21092,99 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'beam', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 12, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 1, b = 1, a = 1.2, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -1.9, posy = 4.5, posz = 14, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -1.9, posy = 4.5, posz = 14, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.055, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 1.9, posy = 4.5, posz = 14, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, + lightConfig = { posx = 1.9, posy = 4.5, posz = 14, radius = 13, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.055, modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, top1 = { lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -6.3, posy = 8, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 1, b = 1, a = 0.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + pieceName = 'base ', + lightConfig = { posx = -6.3, posy = 14, posz = 0, radius = 19, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.3, posy = 8, posz = 0, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 1, b = 1, a = 0.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.3, posy = 14, posz = 0, radius = 19, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 1, posz = -16, radius = 6, - color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 15, - r = 1.3, g = 0.9, b = 0.1, a = 0.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 1, posz = -16, radius = 10, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corhal'] = { back1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5.4, posy = 8.5, posz = -13.2, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1, g = 0.2, b = 0.2, a = 0.5, + lightConfig = { posx = -5.4, posy = 8.5, posz = -13.2, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, back2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5.4, posy = 8.5, posz = -13.2, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1, g = 0.2, b = 0.2, a = 0.5, + lightConfig = { posx = 5.4, posy = 8.5, posz = -13.2, radius = 9, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.06, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -5.4, posy = 8.5, posz = 2.6, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 25, - r = 0, g = 1, b = 0.2, a = 0.7, + lightConfig = { posx = -5.4, posy = 8.5, posz = 2.6, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, front2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 5.4, posy = 8.5, posz = 2.6, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 25, - r = 0, g = 1, b = 0.2, a = 0.7, + lightConfig = { posx = 5.4, posy = 8.5, posz = 2.6, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lightfront1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -10.1, posy = -2.1, posz = 19.8, radius = 1.3, - pos2x = -15.5, pos2y = -2.1, pos2z = 19.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1, g = 1, b = 1, a = 1.8, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lightfront2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 10.1, posy = -2.1, posz = 19.8, radius = 1.3, - pos2x = 15.5, pos2y = -2.1, pos2z = 19.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1, g = 1, b = 1, a = 1.8, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight1 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 12.5, posy = -1, posz = 12, radius = 55, - dirx = 0, diry = -0.03, dirz = 1, theta = 0.4, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight2 = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = -12.5, posy = -1, posz = 12, radius = 55, - dirx = 0, diry = -0.03, dirz = 1, theta = 0.4, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corsh'] = { @@ -30298,7 +21195,7 @@ local unitLights = { color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, r = 0.88, g = 0.83, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corch'] = { @@ -30309,7 +21206,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -30318,16 +21215,7 @@ local unitLights = { dirx = -1, diry = 0, dirz = 0, theta = 0.9, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -30336,520 +21224,188 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - nanolightbright = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 3, posz = 9, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0 }, }, top1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -6.6, posy = 10.5, posz = -7.7, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -6.6, posy = 10.5, posz = -7.7, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, top2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 6.6, posy = 10.5, posz = -7.7, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.1, - r = 1.1, g = 1, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.5, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 6.6, posy = 10.5, posz = -7.7, radius = 13, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 0.6, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 11, posz = 15, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corsnap'] = { - lightfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -2.1, posy = -1.8, posz = 20.8, radius = 2, - pos2x = 2.1, pos2y = -1.8, pos2z = 20.8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'justattachtobase', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 9, posz = 14, radius = 75, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.8, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corsh'] = { - lightfront = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -0.5, posy = 3.2, posz = 8.7, radius = 0.9, - pos2x = 0.5, pos2y = 3.2, pos2z = 8.7, - color2r = 0, color2g = 0, color2b = 0, colortime = -2.5, - r = 1, g = 1, b = 1, a = 1.8, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 3, posz = 2, radius = 75, - dirx = 0, diry = -0.05, dirz = 1, theta = 0.21, - r = 1, g = 1, b = 0.89, a = 0.35, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['cormh'] = { - lightfront1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -3.1, posy = -1.4, posz = 16.1, radius = 1.2, - pos2x = -0.8, pos2y = -1.4, pos2z = 15.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lightfront2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 3.1, posy = -1.4, posz = 16.1, radius = 1.2, - pos2x = 0.8, pos2y = -1.4, pos2z = 15.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 4, posz = 12, radius = 35, - dirx = 0, diry = -0.22, dirz = 1, theta = 0.7, - r = 1, g = 1, b = 0.89, a = 0.30, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamglowl = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 3.4, posy = -0.4, posz = 8, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamglow3 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -3.4, posy = -0.4, posz = 8, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redmid = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = -0.1, posy = 2.5, posz = 5.0, radius = 1.1, - color2r = -4, color2g = -4, color2b = -4, colortime = 15, - r = 1.5, g = 0, b = 0, a = 2.5, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - thruster1 = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 2.4, posz = -12.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1.2, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 1.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 11, posz = 15, radius = 12, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armah'] = { eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 3.2, posz = 11.8, radius = 3.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -3, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'torso', - lightConfig = { posx = 0, posy = 2, posz = 0, radius = 300, colortime = -1.5, - dirx = 0, diry = 0.7, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 2.5, posz = 13, radius = 9, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.3, posy = 1.4, posz = -12.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.15, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.3, posy = 1.2, posz = -12.5, radius = 8, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, thruster2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 2.3, posy = 1.4, posz = -12.5, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.15, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 2.3, posy = 1.2, posz = -12.5, radius = 8, + color2r = 1, color2g = 0.92, color2b = 0.66, colortime = 6, + r = 0.88, g = 0.83, b = 0.2, a = 0.06, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armanac'] = { front = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 2.5, posz = 10, radius = 6, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.1, g = 1, b = 0.2, a = 0.4, - modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - fronthead = { lightType = 'point', pieceName = 'base', lightConfig = { posx = 0, posy = 2.5, posz = 10, radius = 12, - color2r = 0.5, color2g = 0.5, color2b = 0.5, colortime = 45, - r = 1, g = 1, b = 1, a = 0.33, - modelfactor = 0.25, specular = 0.4, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'base', - lightConfig = { posx = 0, posy = 2.5, posz = 3, radius = 70, - dirx = 0, diry = -0.08, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.36, - modelfactor = -0.9, specular = -0.3, scattering = 1.5, lensflare = 0.6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.11, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -14.5, posy = 3, posz = 3.3, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.15, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14.5, posy = 2.8, posz = 3.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -14.5, posy = 3, posz = -3.3, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.15, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -14.5, posy = 2.8, posz = -3.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side3 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 14.5, posy = 3, posz = 3.3, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.15, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14.5, posy = 2.8, posz = 3.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.05, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, side4 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 14.5, posy = 3, posz = -3.3, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.0, - r = 1.15, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 14.5, posy = 2.8, posz = -3.3, radius = 11, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.055, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, turret = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = -2.8, posy = 5, posz = 2.7, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 0.2, a = 0.45, - modelfactor = 0.4, specular = 0.4, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.8, posy = 5, posz = 2.7, radius = 10, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, barrel = { lightType = 'point', pieceName = 'sleeve', - lightConfig = { posx = -2.8, posy = 1.7, posz = 7, radius = 4, + lightConfig = { posx = -2.8, posy = 1.7, posz = 7, radius = 10, color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.08, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armmh'] = { eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 6, posz = 16, radius = 3.5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.5, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 0., lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 4, posz = 10, radius = 35, - dirx = 0.12, diry = -0.22, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.30, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 5, posz = 14.5, radius = 14, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, back = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -2.8, posy = 12, posz = -15, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.5, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -2.8, posy = 12, posz = -15, radius = 22, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.08, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = -10.5, posy = 12, posz = -4, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.5, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -10.5, posy = 12, posz = -4, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, mid2 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 10.5, posy = 12, posz = -4, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.2, g = 1, b = 0.5, a = 0.7, - modelfactor = 0.3, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 10.5, posy = 12, posz = -4, radius = 16, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.065, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armsh'] = { - searchlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 9.2, posz = 4, radius = 90, - dirx = 0, diry = -0.07, dirz = 1, theta = 0.21, - r = 1, g = 1, b = 0.89, a = 0.44, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 1, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 0, posy = 9.2, posz = 9, radius = 4, - color2r = 0.8, color2g = 0.9, color2b = 1, colortime = 0, - r = 0.8, g = 0.9, b = 1, a = 0.6, - modelfactor = 0.5, specular = 0.2, scattering = 0.9, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, gun = { lightType = 'point', pieceName = 'gun', - lightConfig = { posx = 0, posy = 4.5, posz = 1, radius = 5, + lightConfig = { posx = 0, posy = 4.5, posz = 1, radius = 16, color2r = 1, color2g = 1, color2b = 1, colortime = 0, r = 1, g = 1, b = 1, a = 0.06, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['corah'] = { eyes = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 13, posz = 16, radius = 7, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.2, - r = 1, g = 0.2, b = 0.2, a = 0.6, - modelfactor = 0.3, specular = 0.4, scattering = 0.2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - aatop1 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 0, posy = 13, posz = -1, radius = 7, - color2r = -0.6, color2g = -0.4, color2b = -0.5, colortime = 45, - r = 1, g = 0.7, b = 0.85, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.4, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - searchlight = { - lightType = 'cone', - pieceName = 'sleeve', - lightConfig = { posx = 0, posy = 0, posz = 10, radius = 300, colortime = -1.5, - dirx = 0, diry = 0, dirz = 1, theta = 0.12, - r = 1, g = 1, b = 1, a = 0.32, - modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - }, - ['corsok'] = { - lightfront1 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = -3.1, posy = -1.4, posz = 16.1, radius = 1.2, - pos2x = -0.8, pos2y = -1.4, pos2z = 15.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - lightfront2 = { - lightType = 'beam', - pieceName = 'base', - lightConfig = { posx = 3.1, posy = -1.4, posz = 16.1, radius = 1.2, - pos2x = 0.8, pos2y = -1.4, pos2z = 15.1, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.8, - r = 1, g = 1, b = 1, a = 1.2, - modelfactor = 0.4, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 4, posz = 22, radius = 35, - dirx = 0, diry = -0.22, dirz = 1, theta = 0.9, - r = 1, g = 1, b = 0.89, a = 0.30, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamglowl = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 3.4, posy = -0.4, posz = 8, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - teamglow3 = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -3.4, posy = -0.4, posz = 8, radius = 3, - color2r = 0, color2g = 0, color2b = 0, colortime = 120, - r = -1, g = 0, b = 0, a = 2, - modelfactor = 0.5, specular = 0.3, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - redmid = { - lightType = 'point', - pieceName = 'base', - lightConfig = { posx = 28, posy = 13.5, posz = 3.0, radius = 15, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 0, b = 0, a = 0.2, - modelfactor = 0.1, specular = 0.5, scattering = 0, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashlf = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 5.0, posy = 5.7, posz = -6.0, radius = 1.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashlb = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = 5.0, posy = 5.7, posz = -8.5, radius = 1.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashrf = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -5.0, posy = 5.7, posz = -6.0, radius = 1.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - depthchargeflashrb = { - lightType = 'point', - pieceName = 'turret', - lightConfig = { posx = -5.0, posy = 5.7, posz = -8.5, radius = 1.0, - color2r = -2, color2g = -2, color2b = -2, colortime = 25, - r = 0.6, g = 0.8, b = 1, a = 3, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - energyback1 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 0.0, posy = -5.1, posz = -17.8, radius = 1.5, - pos2x = 0.0, pos2y = -8.9, pos2z = -17.81, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 1.6, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - energyback2 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = -4.6, posy = -5.1, posz = -17.8, radius = 1.5, - pos2x = -4.6, pos2y = -8.9, pos2z = -17.81, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 1.6, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - energyback3 = { - lightType = 'beam', - pieceName = 'turret', - lightConfig = { posx = 4.6, posy = -5.1, posz = -17.8, radius = 1.5, - pos2x = 4.6, pos2y = -8.9, pos2z = -17.81, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1.2, g = 1, b = 0.2, a = 1.6, - modelfactor = 0.4, specular = 0.4, scattering = 0.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - thruster1 = { - lightType = 'point', - pieceName = 'jetl', - lightConfig = { posx = 0, posy = -5.0, posz = 0, radius = 7, - color2r = 1.05, color2g = 0.80, color2b = 0.39, colortime = 6, - r = 1.18, g = 0.92, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - thruster2 = { - lightType = 'point', - pieceName = 'jetr', - lightConfig = { posx = 0, posy = -5.0, posz = 0, radius = 7, - color2r = 1.05, color2g = 0.78, color2b = 0.40, colortime = 5, - r = 1.25, g = 0.9, b = 0.4, a = 0.45, - modelfactor = 0.3, specular = 0.4, scattering = 1.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 10, posz = 14, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.075, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armcv'] = { @@ -30858,63 +21414,45 @@ local unitLights = { pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = -1, radius = 16, dirx = 1, diry = 0, dirz = 0, theta = 0.9, - r = 1.3, g = 0.9, b = 0.1, a = 2, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = -1, radius = 16, dirx = -1, diry = 0, dirz = 0, theta = 0.9, - r = 1.3, g = 0.9, b = 0.1, a = 2, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'nano1', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 8, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, nanolight2 = { lightType = 'point', pieceName = 'nano2', - lightConfig = { posx = 0, posy = 0, posz = 1, radius = 8, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 16, color2r = 0, color2g = 0, color2b = 0, colortime = 0, - r = -1, g = 1, b = 1, a = 0.7, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, front = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 3, posy = 9, posz = 25, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 1, g = 1, b = 1, a = 0.8, - modelfactor = 0.4, specular = 0.5, scattering = 0.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 0, posz = -2.5, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { -- this is the lightname - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 3, posy = 11, posz = 21, radius = 32, - dirx = -0.06, diry = -0.33, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.25, colortime = -3, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 3, posy = 9, posz = 25, radius = 12, + color2r = 1, color2g = 1, color2b = 1, colortime = 0, + r = 1, g = 1, b = 1, a = 0.09, + modelfactor = 0.4, specular = 0.5, scattering = 1, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armacv'] = { @@ -30925,7 +21463,7 @@ local unitLights = { dirx = 0.001, diry = 0, dirz = 1, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { lightType = 'cone', @@ -30934,7 +21472,7 @@ local unitLights = { dirx = 0.001, diry = 0, dirz = 1, theta = 0.99, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 6, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -30943,7 +21481,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, + lifetime = 0, sustain = 0, animtype = 0 }, }, nanolight2 = { lightType = 'point', @@ -30952,25 +21490,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.3, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0 }, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 2.5, posz = 0, radius = 6, - color2r = -11, color2g = -11, color2b = -11, colortime = 45, - r = 1.1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.45, specular = 0.2, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - headlight = { - lightType = 'cone', - pieceName = 'base', -- invalid ones will attach to the worldpos of the unit - lightConfig = { posx = 0, posy = 21, posz = 21, radius = 34, - dirx = -0.06, diry = -0.77, dirz = 1, theta = 0.6, - r = 1, g = 1, b = 0.89, a = 0.25, colortime = -3, - modelfactor = -0.5, specular = -0.3, scattering = 1.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0 }, }, }, ['corck'] = { @@ -30979,9 +21499,9 @@ local unitLights = { pieceName = 'cagelight_emit', lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, - r = 1.3, g = 0.9, b = 0.1, a = 2, - modelfactor = 0.2, specular = 0.2, scattering = 1.7, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, buildlight2 = { -- this is the lightname lightType = 'cone', @@ -30989,62 +21509,44 @@ local unitLights = { lightConfig = { posx = 0, posy = 0, posz = 0, radius = 18, dirx = -1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, - modelfactor = 0.2, specular = 0.2, scattering = 1.7, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - buildflash = { - lightType = 'point', - pieceName = 'cagelight', - lightConfig = { posx = 0, posy = 0, posz = -3, radius = 7, - color2r = -4, color2g = -4, color2b = -4, colortime = 60, - r = 1, g = 0.8, b = 0.2, a = 0.6, - modelfactor = 0.5, specular = 0.3, scattering = 0.5, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', pieceName = 'nano', - lightConfig = { posx = 1, posy = 0, posz = 1, radius = 17, - color2r = 0, color2g = 0, color2b = 0, colortime = -2, - r = -1, g = 1, b = 1, a = 0.8, + lightConfig = { posx = 0, posy = 0, posz = 1, radius = 17, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, - }, - nanolightbright = { - lightType = 'point', - pieceName = 'nano', - lightConfig = { posx = 1, posy = 0, posz = 1, radius = 10, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1, g = 1, b = 1, a = 0.6, - modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, side = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 9.2, posy = 5.7, posz = 0, radius = 8, - color2r = 0, color2g = 0, color2b = 0, colortime = -1, - r = 1.1, g = 1, b = 1, a = 0.5, + lightConfig = { posx = 9.2, posy = 5.7, posz = 0, radius = 17, + color2r = 1, color2g = 1, color2b = 0.5, colortime = 0, + r = 1, g = 1, b = 1, a = 0.13, modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = 5.7, posy = 4, posz = 17, radius = 5, - color2r = 1, color2g = 0.2, color2b = 0.2, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 5.7, posy = 4.5, posz = 17, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', pieceName = 'torso', - lightConfig = { posx = -5.7, posy = 4, posz = 17, radius = 5, - color2r = 1, color2g = 0.2, color2b = 0.2, colortime = -1, - r = 1, g = 0.2, b = 0.2, a = 0.6, - modelfactor = 0.4, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = -5.7, posy = 4.5, posz = 17, radius = 14, + color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, + r = 1, g = 0.2, b = 0.2, a = 0.1, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legck'] = { @@ -31055,7 +21557,7 @@ local unitLights = { dirx = 1, diry = 0, dirz = 0, theta = 0.99000001, r = 1.29999995, g = 0.89999998, b = 0.1, a = 2, modelfactor = 0.1, specular = 0.2, scattering = 1.5, lensflare = 8, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, tankglow = { lightType = 'point', @@ -31064,7 +21566,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.2, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -31073,7 +21575,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.15, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -31082,7 +21584,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.15, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -31091,7 +21593,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.15, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes2 = { lightType = 'point', @@ -31100,7 +21602,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.15, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legaceb'] = { @@ -31111,7 +21613,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight = { lightType = 'point', @@ -31120,7 +21622,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.15, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, nanolight2 = { lightType = 'point', @@ -31129,7 +21631,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = -1, g = 1, b = 1, a = 0.15, modelfactor = 0.5, specular = 0.5, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eyes1 = { lightType = 'point', @@ -31138,7 +21640,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.15, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legrail'] = { @@ -31149,7 +21651,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, capacitor = { lightType = 'point', @@ -31158,7 +21660,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, sleeveglow = { lightType = 'point', @@ -31167,7 +21669,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.6, g = 0.3, b = 0.1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legsrail'] = { @@ -31178,7 +21680,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.0, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye2 = { lightType = 'point', @@ -31187,7 +21689,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.0, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye3 = { lightType = 'point', @@ -31196,7 +21698,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.0, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, capacitors = { lightType = 'point', @@ -31205,7 +21707,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.6, g = 0.3, b = 0.1, a = 0.2, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, sleeveglow = { lightType = 'point', @@ -31214,7 +21716,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.6, g = 0.3, b = 0.1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legsrailt4'] = { @@ -31225,7 +21727,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.0, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye2 = { lightType = 'point', @@ -31234,7 +21736,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.0, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, eye3 = { lightType = 'point', @@ -31243,7 +21745,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.2, g = 1, b = 0.2, a = 0.1, modelfactor = 0.0, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, capacitors = { lightType = 'point', @@ -31252,7 +21754,7 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.6, g = 0.3, b = 0.1, a = 0.2, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, sleeveglow = { lightType = 'point', @@ -31261,84 +21763,105 @@ local unitLights = { color2r = 1, color2g = 0.2, color2b = 0.2, colortime = 0, r = 0.6, g = 0.3, b = 0.1, a = 0.25, modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['armgate'] = { shieldglow = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 26, posz = -4, radius = 38, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0.2, g = 0.9, b = 0.3, a = 0.5, - modelfactor = 0.4, specular = 0.4, scattering = 2.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 26, posz = -4, radius = 68, + color2r = 0.1, color2g = 0.45, color2b = 0.15, colortime = 70, + r = 0.2, g = 0.9, b = 0.3, a = 0.25, + modelfactor = 0.4, specular = 1.0, scattering = 1.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + bottom1 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 20, posz = 26, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + bottom2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -6.2, posy = 20, posz = 26, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + bottom3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 6.2, posy = 20, posz = 26, radius = 18, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['armgatet3'] = { + shieldglow = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 0, posy = 66, posz = -5, radius = 68, + color2r = 0.1, color2g = 0.45, color2b = 0.15, colortime = 70, + r = 0.2, g = 0.9, b = 0.3, a = 0.25, + modelfactor = 0.4, specular = 1.0, scattering = 1.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - bottomanimated = { + bottom1 = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 21, posz = 26, radius = 5, - dirx = 1, diry = 0, dirz = 0, theta = -7.2, - color2r = 0, color2g = 0, color2b = 0, colortime = -4, - r = 1.1, g = 1, b = 0.2, a = 1.8, - modelfactor = 0.6, specular = 0.4, scattering = 0.1, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 20, posz = 26, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + bottom2 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = -6.2, posy = 20, posz = 26, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + bottom3 = { + lightType = 'point', + pieceName = 'base', + lightConfig = { posx = 6.2, posy = 20, posz = 26, radius = 28, + color2r = 1, color2g = 1, color2b = 0.2, colortime = 0, + r = 1, g = 1, b = 0.2, a = 0.07, + modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, - -- bottom1 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 20, posz = 26, radius = 8, - -- color2r = 1.1, color2g = 1, color2b = 0.2, colortime = -1, - -- r = 0, g = 0, b = 0, a = 0.8, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- bottom2 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = -6.2, posy = 20, posz = 26, radius = 8, - -- color2r = 1.1, color2g = 1, color2b = 0.2, colortime = -1, - -- r = 0, g = 0, b = 0, a = 0.8, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - -- bottom3 = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 6.2, posy = 20, posz = 26, radius = 8, - -- color2r = 1.1, color2g = 1, color2b = 0.2, colortime = -1, - -- r = 0, g = 0, b = 0, a = 0.8, - -- modelfactor = 0.4, specular = 0, scattering = 0.7, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, }, ['corgate'] = { - -- shieldglowold = { - -- lightType = 'point', - -- pieceName = 'base', - -- lightConfig = { posx = 0, posy = 42, posz = 0, radius = 55, - -- color2r = 0.1, color2g = 0.45, color2b = 0.15, colortime = 70, - -- r = 0.2, g = 0.9, b = 0.3, a = 0.25, - -- modelfactor = 0.4, specular = 1.0, scattering = 1.3, lensflare = 0, - -- lifetime = 0, sustain = 0, selfshadowing = 0}, - -- }, - greenbright = { + shieldglow = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 34, posz = -4, radius = 16, - color2r = 0.1, color2g = 0.45, color2b = 0.15, colortime = 60, - r = 0.2, g = 0.9, b = 0.3, a = 1.5, - modelfactor = 0.4, specular = 0.4, scattering = 0.7, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 4}, + lightConfig = { posx = 0, posy = 42, posz = 0, radius = 55, + color2r = 0.1, color2g = 0.45, color2b = 0.15, colortime = 70, + r = 0.2, g = 0.9, b = 0.3, a = 0.25, + modelfactor = 0.4, specular = 1.0, scattering = 1.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, + }, + ['corgatet3'] = { shieldglow = { lightType = 'point', pieceName = 'base', - lightConfig = { posx = 0, posy = 32, posz = -4, radius = 28, - color2r = 0, color2g = 0, color2b = 0, colortime = -1.5, - r = 0.2, g = 0.9, b = 0.3, a = 0.8, - modelfactor = 0.4, specular = 0.4, scattering = 1.3, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lightConfig = { posx = 0, posy = 42, posz = 0, radius = 55, + color2r = 0.15, color2g = 0.45, color2b = 0.15, colortime = 70, + r = 0.2, g = 0.9, b = 0.3, a = 0.25, + modelfactor = 0.4, specular = 1.0, scattering = 1.3, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legrad'] = { @@ -31349,7 +21872,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, greenblobB = { lightType = 'point', @@ -31358,7 +21881,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 0, colortime = 0, r = 0, g = 1, b = 0, a = 0.60000002, modelfactor = 0.80000001, specular = 0.89999998, scattering = 1, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legjam'] = { @@ -31369,7 +21892,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 0, b = 0, a = 0.6, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['leginc'] = { @@ -31380,7 +21903,7 @@ local unitLights = { color2r = 0, color2g = 0, color2b = 1, colortime = 0, r = 1, g = 1, b = 0.2, a = 0.6, modelfactor = 0.5, specular = 0.5, scattering = 1.5, lensflare = 10, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, }, ['legrl'] = { @@ -31391,17 +21914,17 @@ local unitLights = { dirx = 0, diry = 0, dirz = 1, theta = 0.2, r = 1, g = 1, b = 1, a = 0.45, modelfactor = 0, specular = 1, scattering = 2, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, }, } } unitLights['armtorps'] = unitLights['armmls'] ---unitLights['coruwgeo'] = unitLights['corgeo'] ---unitLights['coruwageo'] = unitLights['corageo'] ---unitLights['armuwgeo'] = unitLights['armgeo'] ---unitLights['armuwageo'] = unitLights['armageo'] +unitLights['coruwgeo'] = unitLights['corgeo'] +unitLights['coruwageo'] = unitLights['corageo'] +unitLights['armuwgeo'] = unitLights['armgeo'] +unitLights['armuwageo'] = unitLights['armageo'] unitLights['armshltxuw'] = unitLights['armshltx'] unitLights['corgantuw'] = unitLights['corgant'] unitLights['armdecom'] = unitLights['armcom'] @@ -31424,7 +21947,7 @@ local unitEventLightsNames = { -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, -- r = 1, g = 1, b = 1, a = 0.69999999, -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - -- lifetime = 300, sustain = 1, selfshadowing = 0}, + -- lifetime = 300, sustain = 1, animtype = 0}, -- }, -- }, -- ['corint'] = { @@ -31435,7 +21958,7 @@ local unitEventLightsNames = { -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, -- r = 1, g = 1, b = 1, a = 0.69999999, -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - -- lifetime = 300, sustain = 1, selfshadowing = 0}, + -- lifetime = 300, sustain = 1, animtype = 0}, -- }, -- }, -- }, @@ -31566,6 +22089,30 @@ local unitEventLightsNames = { lifetime = 200, sustain = 2}, }, }, + ['legjav'] = { + [1] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, + lightType = 'point', + pieceName = 'lbarrel', + lightName = 'legjavlbarrelglow', + alwaysVisible = true, + lightConfig = { posx = 0, posy = 0, posz = 12, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0, colortime = 200, + r = 0.4, g = 0.06, b = 0, a = 0.6, + modelfactor = 2, specular = 1, scattering = 0.0, lensflare = 0, + lifetime = 200, sustain = 3}, + }, + [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, + lightType = 'point', + pieceName = 'rbarrel', + lightName = 'legjavrbarrelglow', + alwaysVisible = true, + lightConfig = { posx = 0, posy = 0, posz = 12, radius = 18, + color2r = 1, color2g = 0.2, color2b = 0, colortime = 200, + r = 0.3, g = 0.06, b = 0, a = 0.6, + modelfactor = 2, specular = 1, scattering = 0.0, lensflare = 0, + lifetime = 200, sustain = 3}, + }, + }, ['legrwall'] = { [1] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, @@ -31616,7 +22163,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 0.50, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31627,7 +22174,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 0.50, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [3] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31677,7 +22224,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 1.0, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31688,7 +22235,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 1.0, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [3] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31699,7 +22246,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 1.0, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [4] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31710,7 +22257,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 1.0, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [5] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31721,7 +22268,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 1.0, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [6] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31732,7 +22279,7 @@ local unitEventLightsNames = { color2r = 0.5, color2g = 0.1, color2b = 0.01, colortime = 550, r = 1, g = 0.4, b = 0.02, a = 1.0, modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - lifetime = 275, sustain = 20, selfshadowing = 0}, + lifetime = 275, sustain = 20, animtype = 0}, }, [7] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31888,7 +22435,7 @@ local unitEventLightsNames = { color2r = 0.6, color2g = 0.07, color2b = 0, colortime = 400, r = 1.1, g = 0.45, b = 0, a = 0.36, modelfactor = 2, specular = 1, scattering = 0.5, lensflare = 0, - lifetime = 200, sustain = 15, selfshadowing = 0}, + lifetime = 200, sustain = 15, animtype = 0}, }, }, @@ -31902,7 +22449,7 @@ local unitEventLightsNames = { color2r = 0.01, color2g = 0.1, color2b = 0.2, colortime = 550, r = 0.5, g = 0.3, b = 0.1, a = 0.50, modelfactor = 2, specular = 1, scattering = 0, lensflare = 1, - lifetime = 100, sustain = 5, selfshadowing = 0}, + lifetime = 100, sustain = 5, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31913,7 +22460,7 @@ local unitEventLightsNames = { color2r = 0.01, color2g = 0.1, color2b = 0.2, colortime = 550, r = 1.0, g = 0.33, b = 0.7, a = 0.50, modelfactor = 2, specular = 1, scattering = 0, lensflare = 1, - lifetime = 100, sustain = 5, selfshadowing = 0}, + lifetime = 100, sustain = 5, animtype = 0}, }, }, @@ -31927,7 +22474,7 @@ local unitEventLightsNames = { color2r = 0.01, color2g = 0.1, color2b = 0.2, colortime = 550, r = 0.5, g = 0.3, b = 0.1, a = 0.50, modelfactor = 2, specular = 1, scattering = 0, lensflare = 1, - lifetime = 100, sustain = 5, selfshadowing = 0}, + lifetime = 100, sustain = 5, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31938,7 +22485,7 @@ local unitEventLightsNames = { color2r = 0.01, color2g = 0.1, color2b = 0.2, colortime = 550, r = 1.0, g = 0.33, b = 0.7, a = 0.50, modelfactor = 2, specular = 1, scattering = 0, lensflare = 1, - lifetime = 100, sustain = 5, selfshadowing = 0}, + lifetime = 100, sustain = 5, animtype = 0}, }, }, @@ -31952,7 +22499,7 @@ local unitEventLightsNames = { color2r = 0.01, color2g = 0.1, color2b = 0.2, colortime = 800, r = 0.6, g = 0.225, b = 0.075, a = 0.375, modelfactor = 2, specular = 1, scattering = 0, lensflare = 1, - lifetime = 1000, sustain = 25, selfshadowing = 0}, + lifetime = 1000, sustain = 25, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -31963,7 +22510,7 @@ local unitEventLightsNames = { color2r = 0.01, color2g = 0.1, color2b = 0.2, colortime = 2500, r = 1.0, g = 0.33, b = 0.7, a = 0.50, modelfactor = 2, specular = 1, scattering = 0, lensflare = 1, - lifetime = 3000, sustain = 25, selfshadowing = 0}, + lifetime = 3000, sustain = 25, animtype = 0}, }, }, @@ -31977,7 +22524,7 @@ local unitEventLightsNames = { color2r = 1, color2g = 0.87, color2b = 0.3, colortime = 200, r = 1.0, g = 0.8, b = 0.1, a = 0.56, modelfactor = 2, specular = 1, scattering = 0.5, lensflare = 0, - lifetime = 200, sustain = 15, selfshadowing = 0}, + lifetime = 200, sustain = 15, animtype = 0}, }, }, @@ -31991,7 +22538,7 @@ local unitEventLightsNames = { color2r = 1, color2g = 0.87, color2b = 0.3, colortime = 400, r = 1.0, g = 0.8, b = 0.1, a = 0.66, modelfactor = 2, specular = 1, scattering = 0.5, lensflare = 9, - lifetime = 200, sustain = 15, selfshadowing = 0}, + lifetime = 200, sustain = 15, animtype = 0}, }, }, @@ -32000,24 +22547,24 @@ local unitEventLightsNames = { [1] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', pieceName = 'lfbarrel2', - lightName = 'l2glow', + lightName = 'cordemonl2glow', alwaysVisible = true, - lightConfig = { posx = 0, posy = 5, posz = 8, radius = 16, - color2r = 0.8, color2g = 0.26, color2b = 0.05, colortime = 300, - r = 0, g = 0, b = 0, a = 2.9, + lightConfig = { posx = 0, posy = 4, posz = 8, radius = 43, + color2r = 0.8, color2g = 0.37, color2b = 0, colortime = 300, + r = 0, g = 0, b = 0, a = 0.03, modelfactor = 2, specular = 1, scattering = 0.05, lensflare = 0, - lifetime = 200, sustain = 5, selfshadowing = 0}, + lifetime = 200, sustain = 5, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', pieceName = 'rfbarrel2', - lightName = 'r2glow', + lightName = 'cordemonr2glow', alwaysVisible = true, - lightConfig = { posx = 0, posy = 5, posz = 8, radius = 16, - color2r = 0.8, color2g = 0.26, color2b = 0.05, colortime = 300, - r = 0, g = 0, b = 0, a = 2.9, + lightConfig = { posx = 0, posy = 4, posz = 8, radius = 43, + color2r = 0.8, color2g = 0.37, color2b = 0, colortime = 300, + r = 0, g = 0, b = 0, a = 0.03, modelfactor = 2, specular = 1, scattering = 0.05, lensflare = 0, - lifetime = 200, sustain = 5, selfshadowing = 0}, + lifetime = 200, sustain = 5, animtype = 0}, }, }, @@ -32031,7 +22578,7 @@ local unitEventLightsNames = { color2r = 0.8, color2g = 0.37, color2b = 0, colortime = 300, r = 0, g = 0, b = 0, a = 0.03, modelfactor = 2, specular = 1, scattering = 0.05, lensflare = 0, - lifetime = 100, sustain = 5, selfshadowing = 0}, + lifetime = 100, sustain = 5, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -32042,7 +22589,7 @@ local unitEventLightsNames = { color2r = 0.8, color2g = 0.37, color2b = 0, colortime = 300, r = 0, g = 0, b = 0, a = 0.03, modelfactor = 2, specular = 1, scattering = 0.05, lensflare = 0, - lifetime = 100, sustain = 5, selfshadowing = 0}, + lifetime = 100, sustain = 5, animtype = 0}, }, [3] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', @@ -32053,7 +22600,7 @@ local unitEventLightsNames = { color2r = 0.8, color2g = 0.37, color2b = 0, colortime = 300, r = 0, g = 0, b = 0, a = 0.03, modelfactor = 2, specular = 1, scattering = 0.05, lensflare = 0, - lifetime = 200, sustain = 5, selfshadowing = 0}, + lifetime = 200, sustain = 5, animtype = 0}, }, }, @@ -32068,7 +22615,7 @@ local unitEventLightsNames = { color2r = 0.6, color2g = 0.07, color2b = 0, colortime = 400, r = 1.1, g = 0.45, b = 0, a = 0.36, modelfactor = 2, specular = 1, scattering = 0.5, lensflare = 0, - lifetime = 150, sustain = 15, selfshadowing = 0}, + lifetime = 150, sustain = 15, animtype = 0}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, @@ -32080,7 +22627,7 @@ local unitEventLightsNames = { color2r = 0.6, color2g = 0.07, color2b = 0, colortime = 500, r = 1.1, g = 0.45, b = 0, a = 0.46, modelfactor = 2, specular = 1, scattering = 0.5, lensflare = 0, - lifetime = 250, sustain = 15, selfshadowing = 0}, + lifetime = 250, sustain = 15, animtype = 0}, }, }, @@ -32089,27 +22636,24 @@ local unitEventLightsNames = { [1] = { lightType = 'point', pieceName = 'flare1', - lightName = 'glow1', + lightName = 'corsokglow1', alwaysVisible = true, lightConfig = { posx = 0, posy = 2, posz = 2, radius = 18, - --color2r = 0.6, color2g = 0.07, color2b = 0, colortime = 400, - color2r = 0.02, color2g = 0.1, color2b = 0.2, colortime = 400, - --r = 1.1, g = 0.45, b = 0, a = 0.36, - r = 0.2, g = 0.45, b = 0.8, a = 0.36, + color2r = 0.6, color2g = 0.07, color2b = 0, colortime = 400, + r = 1.1, g = 0.45, b = 0, a = 0.36, modelfactor = 2, specular = 1, scattering = 0.5, lensflare = 0, - lifetime = 200, sustain = 15, selfshadowing = 0}, + lifetime = 200, sustain = 15, animtype = 0}, }, [2] = { lightType = 'point', pieceName = 'flare2', - lightName = 'glow2', + lightName = 'corsokglow2', alwaysVisible = true, lightConfig = { posx = 0, posy = 2, posz = 2, radius = 18, - color2r = 0.02, color2g = 0.1, color2b = 0.2, colortime = 400, - --r = 1.1, g = 0.45, b = 0, a = 0.36, - r = 0.2, g = 0.45, b = 0.8, a = 0.36, + color2r = 0.6, color2g = 0.07, color2b = 0, colortime = 400, + r = 1.1, g = 0.45, b = 0, a = 0.36, modelfactor = 2, specular = 1, scattering = 0.5, lensflare = 0, - lifetime = 200, sustain = 15, selfshadowing = 0}, + lifetime = 200, sustain = 15, animtype = 0}, }, }, @@ -32117,116 +22661,25 @@ local unitEventLightsNames = { [1] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', pieceName = 'lcannon', - lightName = 'lbarrelglow', + lightName = 'armrazlbarrelglow', alwaysVisible = true, - lightConfig = { posx = 0, posy = 6, posz = 30, radius = 22, - color2r = 1.1, color2g = 0.22, color2b = 0, colortime = 200, - r = 0.30, g = 0.06, b = 0, a = 0.68, - modelfactor = 2, specular = 0.5, scattering = 0, lensflare = 0, + lightConfig = { posx = 0, posy = 7, posz = 31, radius = 22, + color2r = 1, color2g = 0.2, color2b = 0, colortime = 200, + r = 0.4, g = 0.06, b = 0, a = 0.6, + modelfactor = 2, specular = 1, scattering = 0.4, lensflare = 0, lifetime = 200, sustain = 3}, }, [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, lightType = 'point', pieceName = 'rcannon', - lightName = 'rbarrelglow', + lightName = 'armrazrbarrelglow', alwaysVisible = true, - lightConfig = { posx = 0, posy = 6, posz = 30, radius = 22, - color2r = 1.1, color2g = 0.22, color2b = 0, colortime = 200, - r = 0.30, g = 0.06, b = 0, a = 0.68, - modelfactor = 2, specular = 0.5, scattering = 0, lensflare = 0, + lightConfig = { posx = 0, posy = 7, posz = 31, radius = 22, + color2r = 1, color2g = 0.2, color2b = 0, colortime = 200, + r = 0.3, g = 0.06, b = 0, a = 0.6, + modelfactor = 2, specular = 1, scattering = 0.4, lensflare = 0, lifetime = 200, sustain = 3}, }, - [3] = { --red light on back of gun - lightType = 'point', - pieceName = 'lcannon', - lightName = 'lightsl', - alwaysVisible = true, - lightConfig = { posx = 0.3, posy = 6, posz = -7.6, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 50, - r = 1, g = 0, b = 0, a = 0.9, - modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 25, sustain = 20, selfshadowing = 0}, - }, - [4] = { --red light on back of gun - lightType = 'point', - pieceName = 'rcannon', - lightName = 'lightsr', - alwaysVisible = true, - lightConfig = { posx = -0.3, posy = 6, posz = -7.6, radius = 4, - color2r = 0, color2g = 0, color2b = 0, colortime = 50, - r = 1, g = 0, b = 0, a = 0.9, - modelfactor = 0.4, specular = 0, scattering = 0.6, lensflare = 0, - lifetime = 25, sustain = 20, selfshadowing = 0}, - }, - [5] = { --red light on shoulder - lightType = 'point', - pieceName = 'torso', - lightName = 'lightsls', - alwaysVisible = true, - lightConfig = { posx = 6.8, posy = 10, posz = -12.1, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 50, - r = 1, g = 0.1, b = 0.1, a = 0.8, - modelfactor = 0.3, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 25, sustain = 10, selfshadowing = 0}, - }, - [6] = { --red light on shoulder - lightType = 'point', - pieceName = 'torso', - lightName = 'lightsrs', - alwaysVisible = true, - lightConfig = { posx = -6.8, posy = 10, posz = -12.1, radius = 5, - color2r = 0, color2g = 0, color2b = 0, colortime = 50, - r = 1, g = 0.1, b = 0.1, a = 0.8, - modelfactor = 0.3, specular = 0.1, scattering = 0.2, lensflare = 0, - lifetime = 25, sustain = 10, selfshadowing = 0}, - }, - }, - - ['corcat'] = { - [1] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, - lightType = 'point', - pieceName = 'lturret', - lightName = 'lbarrelglow', - alwaysVisible = true, - lightConfig = { posx = 18.3, posy = 5, posz = 18, radius = 8, - color2r = 0.30, color2g = 0.06, color2b = 0, colortime = 550, - r = 1.1, g = 0.22, b = 0, a = 0.9, - modelfactor = 2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 400, sustain = 25}, - }, - [2] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, - lightType = 'point', - pieceName = 'lturret', - lightName = 'lbarrelglow2', - alwaysVisible = true, - lightConfig = { posx = 10.3, posy = 5, posz = 18, radius = 8, - color2r = 0.30, color2g = 0.06, color2b = 0, colortime = 550, - r = 1.1, g = 0.22, b = 0, a = 0.9, - modelfactor = 2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 400, sustain = 25}, - }, - [3] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, - lightType = 'point', - pieceName = 'rturret', - lightName = 'rbarrelglow', - alwaysVisible = true, - lightConfig = { posx = -18.3, posy = 5, posz = 18, radius = 8, - color2r = 0.30, color2g = 0.06, color2b = 0, colortime = 550, - r = 1.1, g = 0.22, b = 0, a = 0.9, - modelfactor = 2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 400, sustain = 25}, - }, - [4] = { --lightIndex as above, MUST BE AN INTEGER, Give it a nice name in a comment, - lightType = 'point', - pieceName = 'rturret', - lightName = 'rbarrelglow2', - alwaysVisible = true, - lightConfig = { posx = -10.3, posy = 5, posz = 18, radius = 8, - color2r = 0.30, color2g = 0.06, color2b = 0, colortime = 550, - r = 1.1, g = 0.22, b = 0, a = 0.9, - modelfactor = 2, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 400, sustain = 25}, - }, }, ['armanni'] = { @@ -32236,10 +22689,10 @@ local unitEventLightsNames = { lightName = 'armsnipebarrelglow', alwaysVisible = true, lightConfig = { posx = 0, posy = 15, posz = -8, radius = 23, - color2r = 1.1, color2g = 0.22, color2b = 0, colortime = 150, + color2r = 0.7, color2g = 0.5, color2b = 0, colortime = 400, r = 0.3, g = 0.05, b = 0, a = 0.5, modelfactor = 1, specular = 1, scattering = 0.3, lensflare = 0, - lifetime = 200, sustain = 10}, + lifetime = 200, sustain = 2}, }, }, [UnitDefNames['armexcalibur'].id] = { @@ -32249,10 +22702,10 @@ local unitEventLightsNames = { lightName = 'armsnipebarrelglow', alwaysVisible = true, lightConfig = { posx = 0, posy = 2, posz = 5, radius = 23, - color2r = 1.1, color2g = 0.22, color2b = 0, colortime = 150, + color2r = 0.7, color2g = 0.5, color2b = 0, colortime = 400, r = 0.3, g = 0.05, b = 0, a = 0.4, modelfactor = 1, specular = 1, scattering = 0.3, lensflare = 0, - lifetime = 200, sustain = 10}, + lifetime = 200, sustain = 2}, }, }, @@ -32348,7 +22801,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.7, modelfactor = 0.4, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['corcom'] = { @@ -32359,7 +22812,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.4, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['legcom'] = { @@ -32370,7 +22823,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.4, specular = 0.6, scattering = 0.7, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armck'] = { @@ -32383,7 +22836,7 @@ local unitEventLightsNames = { r = -1, g = 1, b = 1, a = 0.8, --r = 1.3, g = 0.9, b = 0.1, a = 0.5, modelfactor = 0.9, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armcv'] = { @@ -32395,7 +22848,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.9, modelfactor = 0.9, specular = 0.2, scattering = 0.2, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armbeaver'] = { @@ -32407,7 +22860,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.8, modelfactor = 0.9, specular = 0.2, scattering = 0.1, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armca'] = { @@ -32419,7 +22872,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.9, modelfactor = 0.9, specular = 0.3, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armcsa'] = { @@ -32431,7 +22884,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.85, modelfactor = 0.9, specular = 0.3, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armcs'] = { @@ -32442,7 +22895,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 1, specular = 0.9, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, idleBlinkleft = { lightType = 'point', @@ -32451,7 +22904,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 1, specular = 0.9, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, idleBlinkright = { lightType = 'point', @@ -32460,7 +22913,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 1, specular = 0.9, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, @@ -32472,7 +22925,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.9, specular = 0.5, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armch'] = { @@ -32483,7 +22936,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 1, specular = 0.75, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, idleBlinkBack = { lightType = 'point', @@ -32492,7 +22945,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 1, specular = 0.75, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armack'] = { @@ -32503,7 +22956,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 0.95, modelfactor = 0.95, specular = 0.2, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armacv'] = { @@ -32514,7 +22967,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.9, specular = 0.2, scattering = 0.75, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, ['armaca'] = { @@ -32525,7 +22978,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 24, r = -1, g = 1, b = 1, a = 1, modelfactor = 0.95, specular = 0.45, scattering = 0.35, lensflare = 0, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, }, --[[ @@ -32537,7 +22990,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 6, r = -1, g = 1, b = 1, a = 0.25, modelfactor = 0.2, specular = 0.7, scattering = 0.7, lensflare = 1, - lifetime = 12, sustain = 0, selfshadowing = 0}, + lifetime = 12, sustain = 0, animtype = 0}, }, } ]]-- @@ -32553,7 +23006,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = -1, g = 1, b = 1, a = 0.18, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 20, sustain = 2, selfshadowing = 0}, + lifetime = 20, sustain = 2, animtype = 0}, }, }, }, @@ -32568,7 +23021,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = -1, g = 1, b = 1, a = 0.16, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, }, @@ -32582,7 +23035,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.45, modelfactor = 0.2, specular = 0.3, scattering = 1.5, lensflare = 10, - lifetime = 30, sustain = 0, selfshadowing = 0}, + lifetime = 30, sustain = 0, animtype = 0}, }, -- cloakFlash = { -- lightType = 'point', @@ -32591,7 +23044,7 @@ local unitEventLightsNames = { -- color2r = 1, color2g = 1, color2b = 1, colortime = 5, -- r = 0, g = 0, b = 0, a = 0.45, -- modelfactor = 0.2, specular = 0.4, scattering = 1.5, lensflare = 0, - -- lifetime = 5, sustain = 0, selfshadowing = 0}, + -- lifetime = 5, sustain = 0, animtype = 0}, -- }, }, default = { @@ -32603,7 +23056,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = -1, g = 1, b = 1, a = 0.16, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, }, @@ -32617,7 +23070,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 60, r = -1, g = 1, b = 1, a = 0.45, modelfactor = 0.2, specular = 0.3, scattering = 1.5, lensflare = 10, - lifetime = 30, sustain = 0, selfshadowing = 0}, + lifetime = 30, sustain = 0, animtype = 0}, }, }, default = { @@ -32629,7 +23082,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = -1, g = 1, b = 1, a = 0.16, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, }, @@ -32643,7 +23096,7 @@ local unitEventLightsNames = { color2r = 0, color2g = 0, color2b = 0, colortime = 20, r = -1, g = 1, b = 1, a = 0.6, modelfactor = 0.5, specular = 0.3, scattering = 0.25, lensflare = 0, - lifetime = 10, sustain = 0, selfshadowing = 0}, + lifetime = 10, sustain = 0, animtype = 0}, }, }, default = { @@ -32655,7 +23108,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = -1, g = 0, b = 0, a = 0.5, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, }, @@ -32669,7 +23122,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = 1, g = 0, b = 0, a = 0.16, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, @@ -32685,7 +23138,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, }, @@ -32699,7 +23152,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = -1, g = 1, b = 1, a = 0.5, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, }, @@ -32713,7 +23166,7 @@ local unitEventLightsNames = { dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, r = 1, g = 0, b = 0, a = 0.26, modelfactor = 0.2, specular = 1, scattering = 0.7, lensflare = 0, - lifetime = 15, sustain = 2, selfshadowing = 0}, + lifetime = 15, sustain = 2, animtype = 0}, }, }, }, @@ -32809,55 +23262,16 @@ end unitDefLights = table.merge(unitDefLights, scavUnitDefLights) scavUnitDefLights = nil - - --------------------- Feature Lights - local featureDefLights = { } -local WreckBaseLight = { - lightType = 'point', - lightConfig = { posx = 1, posy = -2 , posz = 1, radius = 9, -- underground relative to unit, radius will be overwritten - dirx = 0.003, diry = 0.0035, dirz = 0.003, theta = 0.9, - r = 1.2, g = 0.38, b = 0, a = 0.7, -- start at orange - color2r = 0.6, color2g = 0.15, color2b = -0.5, colortime = 40, -- in 450 frames, transition to dull red - modelfactor = 3.0, specular = -0.3, scattering = 1.6, lensflare = 0, -- no scatterin - lifetime = 350, sustain = 0.00005, selfshadowing = 0}, -- remove at 300 frames, sustain is exp alpha fade -} - -for featureDefID, featureDef in pairs(FeatureDefs) do - local name = featureDef.name - if string.sub(name, string.len(name)-4) == "_dead" then - local wreckRng = math.random() * 2 - 1 - local featureSize = math.sqrt((featureDef.xsize or 1) * (featureDef.zsize or 1)) / 2.0 - --Spring.Echo(name, featureDef.xsize , featureDef.zsize) - local featureDefLight = table.copy(WreckBaseLight) - featureDefLight.lightConfig.radius = featureSize * 19 - featureDefLight.lightConfig.colortime = featureDefLight.lightConfig.colortime * featureSize * 1.8 - --featureDefLight.lightConfig.lifetime = featureDefLight.lightConfig.lifetime * featureSize * 0.5 - --featureDefLight.lightConfig.sustain = featureDefLight.lightConfig.sustain / (featureSize * 1.4) - featureDefLight.lightConfig.posx = featureDefLight.lightConfig.posx * (wreckRng * featureSize * 7) - featureDefLight.lightConfig.posz = featureDefLight.lightConfig.posz * (wreckRng * featureSize * 7) - if (featureSize > 3) then --for super large structures/units - lower light posy - featureDefLight.lightConfig.posy = featureDefLight.lightConfig.posy * (featureSize * 4) - end - featureDefLight.lightConfig.dirx = featureDefLight.lightConfig.dirx * (wreckRng * (featureSize / 4) * 2) - featureDefLight.lightConfig.dirz = featureDefLight.lightConfig.dirz * (wreckRng * (featureSize / 4) * 2) - featureDefLights[featureDefID] = {FeatureCreated = featureDefLight} - end -end - - - - local crystalLightBase = { lightType = 'point', lightConfig = { posx = 0, posy = 12, posz = 0, radius = 72, color2r = 0, color2g = 0, color2b = 0, colortime = 0.1, r = -1, g = 1, b = 1, a = 0.66, modelfactor = 1.1, specular = 0.9, scattering = 0.8, lensflare = 0, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, } local crystalColors = { -- note that the underscores are needed here @@ -32911,7 +23325,7 @@ local xmaslightbase = { color2r = 0, color2g = 0, color2b = 0, colortime = 0.1, r = 1, g = 1, b = 1, a = 0.12, modelfactor = 1.1, specular = 0.9, scattering = 4.5, lensflare = 20, - lifetime = 0, sustain = 0, selfshadowing = 0}, + lifetime = 0, sustain = 0, animtype = 0}, } @@ -33005,7 +23419,7 @@ local lightParamKeyOrder = { posx = 1, posy = 2, posz = 3, radius = 4, dirx = 5, diry = 6, dirz = 7, theta = 8, -- cone lights only, specify direction and half-angle in radians pos2x = 5, pos2y = 6, pos2z = 7, -- beam lights only, specifies the endpoint of the beam modelfactor = 13, specular = 14, scattering = 15, lensflare = 16, - lifetime = 18, sustain = 19, selfshadowing = 20 + lifetime = 18, sustain = 19, animtype = 20 -- unused } for typename, typetable in pairs(allLights) do @@ -33031,7 +23445,7 @@ for typename, typetable in pairs(allLights) do end Spring.Echo(string.format(" r = %f, g = %f, b = %f, a = %f,", lightinfo.lightParamTable[9], lightParamTable[10],lightParamTable[11],lightParamTable[12] )) Spring.Echo(string.format(" modelfactor = %f, specular = %f, scattering = %f, lensflare = %f,", lightinfo.lightParamTable[13], lightParamTable[14],lightParamTable[15],lightParamTable[16] )) - Spring.Echo(string.format(" lifetime = %f, sustain = %f, selfshadowing = %f},", lightinfo.lightParamTable[18], lightParamTable[19],lightParamTable[20])) + Spring.Echo(string.format(" lifetime = %f, sustain = %f, animtype = %f},", lightinfo.lightParamTable[18], lightParamTable[19],lightParamTable[20])) end end diff --git a/luaui/configs/DistortionGL4Config.lua b/luaui/configs/DistortionGL4Config.lua deleted file mode 100644 index bb3f0988800..00000000000 --- a/luaui/configs/DistortionGL4Config.lua +++ /dev/null @@ -1,2030 +0,0 @@ --- This file contains all the unit-attached distortions --- Including cob-animated distortions, like thruster attached ones, and fusion glows --- Searchdistortions also go here --- As well as muzzle glow should also go here --- nanolasers should also be here --- (c) Beherith (mysterme@gmail.com) - - -local exampleDistortion = { - distortionType = 'point', -- or cone or beam - -- if pieceName == nil then the distortion is treated as WORLD-SPACE - -- if pieceName == valid piecename, then the distortion is attached to that piece - -- if pieceName == invalid piecename, then the distortion is attached to base of unit - pieceName = nil, - -- If you want to make the distortion be offset from the top of the unit, specify how many elmos above it should be! - aboveUnit = nil, - -- Distortions that should spawn even if they are outside of view need this set: - alwaysVisible = nil, - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 100, - -- cone distortions only, specify direction and half-angle in radians: - dirx = 0, diry = 0, dirz = 1, theta = 0.5, - -- beam distortions only, specifies the endpoint of the beam: - pos2x = 100, pos2y = 100, pos2z = 100, - lifeTime = 0, sustain = 1, selfshadowing = 0 - }, -} - --- multiple distortions per unitdef/piece are possible, as the distortions are keyed by distortionname - -local unitDistortions = { - - -- ['armsolar'] = { - -- distortion = { - -- distortionType = 'point', - -- pieceName = 'emit', - -- distortionConfig = { posx = 0, posy = 2, posz = 0, radius = 33, - -- noiseStrength = 0.5, noiseScaleSpace = 1.5, distanceFalloff = 2.0, - -- lifeTime = 0, rampUp = 300, decay = -2.0, - -- effectType = 0}, - -- }, - -- }, - - - ['armmakr'] = { - distortion = { - distortionType = 'point', - pieceName = 'light', - distortionConfig = { posx = 0, posy = -2, posz = 0, radius = 18, - noiseStrength = 0.6, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - lifeTime = 0, rampUp = 30, decay = -1.2, - effectType = 0}, - }, - }, - ['cormakr'] = { - distortion = { - distortionType = 'point', - pieceName = 'light', - distortionConfig = { posx = 0, posy = 3, posz = 0, radius = 16, - noiseStrength = 0.6, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - lifeTime = 0, rampUp = 30, decay = -1.2, - effectType = 0}, - }, - }, - ['armmmkr'] = { - distortion = { - distortionType = 'point', - pieceName = 'light', - distortionConfig = { posx = 0, posy = -3, posz = 0, radius = 24, - noiseStrength = 0.5, noiseScaleSpace = 1.4, distanceFalloff = 0.5, - lifeTime = 0, rampUp = 30, decay = -1.2, - effectType = 0}, - }, - }, - ['cormmkr'] = { - distortion = { - distortionType = 'point', - pieceName = 'light', - distortionConfig = { posx = 0, posy = -1, posz = 0, radius = 18, - noiseStrength = 0.5, noiseScaleSpace = 1.4, distanceFalloff = 0.5, - lifeTime = 0, rampUp = 30, decay = -1.2, - effectType = 0}, - }, - }, - ['armestor'] = { - distortion = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = -6.5, posz = 0.01, radius = 23, - pos2x = 0, pos2y = 15, pos2z = 0, radius2 = 23, - noiseStrength = 0.5, noiseScaleSpace = -1, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - }, - ['armvang'] = { - distortion = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 2.0, posy = 5, posz = -12, radius = 2.4, - pos2x = -2.0, pos2y = 5, pos2z = -12, radius2 = 23, - noiseStrength = 0.7, noiseScaleSpace = -2, distanceFalloff = 0.8, - rampUp = 30, decay = 0, - lifeTime = 0, effectType = 0}, - }, - }, - ['corcat'] = { - distortionl = { - distortionType = 'point', - pieceName = 'lturret', - distortionConfig = { posx = 14, posy = 13, posz = 3, radius = 5, - noiseStrength = 0.7, noiseScaleSpace = -2, distanceFalloff = 0.8, - rampUp = 30, decay = 0, - lifeTime = 0, effectType = 0}, - }, - distortionr = { - distortionType = 'point', - pieceName = 'rturret', - distortionConfig = { posx = -14, posy = 13, posz = 3, radius = 5, - noiseStrength = 0.7, noiseScaleSpace = -2, distanceFalloff = 0.8, - rampUp = 30, decay = 0, - lifeTime = 0, effectType = 0}, - }, - }, - ['armthor'] = { - distortionbackenergy = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -4, posy = 14, posz = -25, radius = 9, - pos2x = 4, pos2y = 14, pos2z = -25, - noiseStrength = 0.5, noiseScaleSpace = -1.5, distanceFalloff = 0.8, - rampUp = 30, decay = 5, - lifeTime = 0, effectType = 0}, - }, - distortionbarrell = { - distortionType = 'beam', - pieceName = 'ltbarrel', - distortionConfig = { posx = 0, posy = 0, posz = -8, radius = 6, - pos2x = 0, pos2y = 0, pos2z = -9, - noiseStrength = 0.7, noiseScaleSpace = -2.5, distanceFalloff = 0.8, - rampUp = 0, decay = 0, - lifeTime = 0, effectType = 0}, - }, - distortionbarrelr = { - distortionType = 'beam', - pieceName = 'rtbarrel', - distortionConfig = { posx = 0, posy = 0, posz = -8, radius = 6, - pos2x = 0, pos2y = 0, pos2z = -9, - noiseStrength = 0.7, noiseScaleSpace = -2.5, distanceFalloff = 0.8, - rampUp = 0, decay = 0, - lifeTime = 0, effectType = 0}, - }, - }, - ['armlship'] = { - distortion1 = { - distortionType = 'beam', - pieceName = 'turret', - distortionConfig = { posx = 3, posy = 9.0, posz = 0, radius = 2,4, - pos2x = 3, pos2y = 9.0, pos2z = -5, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - distortion2 = { - distortionType = 'beam', - pieceName = 'turret', - distortionConfig = { posx = -3, posy = 9.0, posz = 0, radius = 2.4, - pos2x = -3, pos2y = 9.0, pos2z = -5, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - }, - ['corfship'] = { - distortionflame = { - distortionType = 'beam', - pieceName = 'sleeve', - distortionConfig = { posx = 0, posy = 0, posz = 22, radius = 4, - pos2x = 0, pos2y = 0, pos2z = 19, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 0.8, - rampUp = 0, decay = -1.5, - lifeTime = 0, effectType = 0}, - }, - }, - ['armantiship'] = { - distortionback1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -10, posy = 10, posz = -50, radius = 13, - pos2x = 10, pos2y = 10, pos2z = -50.1, radius2 = 23, - noiseStrength = 0.5, noiseScaleSpace = -1, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - distortionback2 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -10, posy = 10, posz = -33, radius = 13, - pos2x = 10, pos2y = 10, pos2z = -33, radius2 = 23, - noiseStrength = 0.5, noiseScaleSpace = -1, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armuwadves'] = { - distortion1 = { - distortionType = 'beam', - pieceName = 'emit1', - distortionConfig = { posx = 0, posy = -20, posz = 0.01, radius = 20, - pos2x = 0, pos2y = -5, pos2z = 0, - noiseStrength = 0.5, noiseScaleSpace = -1, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - distortion2 = { - distortionType = 'beam', - pieceName = 'emit2', - distortionConfig = { posx = 0, posy = -20, posz = 0.01, radius = 20, - pos2x = 0, pos2y = -5, pos2z = 0, - noiseStrength = 0.5, noiseScaleSpace = -1, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corestor'] = { - distortion = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 0, posz = 0.01, radius = 28, - pos2x = 0, pos2y = 20, pos2z = 0, radius2 = 28, - noiseStrength = 0.7, noiseScaleSpace = -1.3, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - - }, - }, - - ['coruwadves'] = { - distortion = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 0, posz = 0.01, radius = 40, - pos2x = 0, pos2y = 25, pos2z = 0, radius2 = 40, - noiseStrength = 0.5, noiseScaleSpace = -1.4, distanceFalloff = 0.8, - rampUp = 30, decay = -1.3, - lifeTime = 0, effectType = 0}, - - }, - }, - - ['armguard'] = { - sleeve1 = { - distortionType = 'beam', - pieceName = 'sleeves', - distortionConfig = { posx = 3.5, posy = 2, posz = 16.3, radius = 5, - pos2x = 3.5, pos2y = 2, pos2z = 9, - noiseStrength = 0.5, noiseScaleSpace = -1, distanceFalloff = 0.8, - rampUp = 30, decay = -2, - lifeTime = 0, effectType = 0}, - }, - sleeve2 = { - distortionType = 'beam', - pieceName = 'sleeves', - distortionConfig = { posx = -3.5, posy = 2, posz = 16.3, radius = 5, - pos2x = -3.5, pos2y = 2, pos2z = 9, - noiseStrength = 0.5, noiseScaleSpace = -1, distanceFalloff = 0.8, - rampUp = 30, decay = -2, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armbull'] = { - distortion = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 20, posz = -10, radius = 20, - noiseStrength = 0.3, noiseScaleSpace = -2, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['armvp'] = { - heatvent1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -32, posy = 26, posz = -11.5, radius = 5, - pos2x = -32, pos2y = 32, pos2z = -11.4, - noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatvent2 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -32, posy = 26, posz = -35.5, radius = 5, - pos2x = -32, pos2y = 32, pos2z = -35.4, - noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatvent3 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 32, posy = 26, posz = -11.5, radius = 5, - pos2x = 32, pos2y = 32, pos2z = -11.4, - noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatvent4 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 32, posy = 26, posz = -35.5, radius = 5, - pos2x = 32, pos2y = 32, pos2z = -35.4, - noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['corhal'] = { - heatventfront1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -13, posy = -3, posz = 12, radius = 7, - pos2x = -13, pos2y = 4, pos2z = 12.1, - noiseStrength = 0.4, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatventfront2 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 13, posy = -3, posz = 12, radius = 7, - pos2x = 13, pos2y = 4, pos2z = 12.1, - noiseStrength = 0.4, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['corvp'] = { - heatvent1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -7, posy = 30, posz = -32.5, radius = 12, - pos2x = 7, pos2y = 30, pos2z = -32.4, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatventfront1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -25.5, posy = 15, posz = 46.5, radius = 5, - pos2x = -25.5, pos2y = 24, pos2z = 51.4, - noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatventfront2 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 25.5, posy = 15, posz = 46.5, radius = 5, - pos2x = 25.5, pos2y = 24, pos2z = 51.4, - noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - -- heatvent3 = { - -- distortionType = 'beam', - -- pieceName = 'base', - -- distortionConfig = { posx = 32, posy = 26, posz = -11.5, radius = 5, - -- pos2x = 32, pos2y = 32, pos2z = -11.4, - -- noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - -- windAffected = -1, riseRate = 1, - -- lifeTime = 0, effectType = 'heatDistortion'}, - -- }, - -- heatvent4 = { - -- distortionType = 'beam', - -- pieceName = 'base', - -- distortionConfig = { posx = 32, posy = 26, posz = -35.5, radius = 5, - -- pos2x = 32, pos2y = 32, pos2z = -35.4, - -- noiseStrength = 0.4, noiseScaleSpace = -3, distanceFalloff = 1.4, - -- windAffected = -1, riseRate = 1, - -- lifeTime = 0, effectType = 'heatDistortion'}, - -- }, - }, - - ['armsd'] = { - distortion = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 18, posz = -24.5, radius = 9, - noiseStrength = 0.6, noiseScaleSpace = -2, distanceFalloff = 1, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['armanac'] = { - fanheat1 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = -8, posy = 6.5, posz = -5, radius = 2.3, - noiseStrength = 0.4, noiseScaleSpace = -8, distanceFalloff = 1, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - fanheat2 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 8, posy = 6.5, posz = -5, radius = 2.3, - noiseStrength = 0.4, noiseScaleSpace = -8, distanceFalloff = 1, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - fanheat3 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = -8, posy = 6.5, posz = 4, radius = 2.3, - noiseStrength = 0.4, noiseScaleSpace = -8, distanceFalloff = 1, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - fanheat4 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 8, posy = 6.5, posz = 4, radius = 2.3, - noiseStrength = 0.4, noiseScaleSpace = -8, distanceFalloff = 1, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['armgeo'] = { - fanheat = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 50, posz = -5, radius = 20, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - barrell = { - distortionType = 'point', - pieceName = 'hotl', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 6, - noiseStrength = 0.9, noiseScaleSpace = -1.7, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - barrelr = { - distortionType = 'point', - pieceName = 'hotr', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 6, - noiseStrength = 0.9, noiseScaleSpace = -1.7, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - ['armgmm'] = { - fanheat = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 30, posz = 0, radius = 16, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - ['armageo'] = { - storageheatcenter = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 30, posz = 0, radius = 12, - pos2x = 0, pos2y = 45, pos2z = 0.1, - noiseStrength = 0.5, noiseScaleSpace = -1.4, distanceFalloff = 0.8, - rampUp = 30, decay = 0, - lifeTime = 0, effectType = 0}, - }, - storageheat1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 5, posz = 34, radius = 17, - pos2x = 0, pos2y = 35, pos2z = 34.1, - noiseStrength = 0.6, noiseScaleSpace = -1.4, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - storageheat2 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -29, posy = 5, posz = -16, radius = 17, - pos2x = -29, pos2y = 35, pos2z = -16.1, - noiseStrength = 0.6, noiseScaleSpace = -1.4, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - storageheat3 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 29, posy = 5, posz = -16, radius = 17, - pos2x = 29, pos2y = 35, pos2z = -16.1, - noiseStrength = 0.6, noiseScaleSpace = -1.4, distanceFalloff = 0.8, - rampUp = 30, decay = -1.2, - lifeTime = 0, effectType = 0}, - }, - }, - ['corkarg'] = { - engineheatr = { - distortionType = 'point', - pieceName = 'turret', - distortionConfig = { posx = -24.4, posy = 13, posz = 10.5, radius = 4, - noiseStrength = 0.5, noiseScaleSpace = 2, distanceFalloff = 0.8, - windAffected = -0.5, riseRate = -2, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - engineheatl = { - distortionType = 'point', - pieceName = 'turret', - distortionConfig = { posx = 24.4, posy = 13, posz = 10.5, radius = 4, - noiseStrength = 0.5, noiseScaleSpace = 2, distanceFalloff = 0.8, - windAffected = -0.5, riseRate = -2, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['corkorg'] = { - engineheatr = { - distortionType = 'point', - pieceName = 'ruparm', - distortionConfig = { posx = -10, posy = -2, posz = -17, radius = 10, - noiseStrength = 0.7, noiseScaleSpace = 2, distanceFalloff = 0.8, - windAffected = -0.5, riseRate = -2, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - engineheatl = { - distortionType = 'point', - pieceName = 'luparm', - distortionConfig = { posx = 10, posy = -2, posz = -17, radius = 10, - noiseStrength = 0.7, noiseScaleSpace = 2, distanceFalloff = 0.8, - windAffected = -0.5, riseRate = -2, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - ['armadvsol'] = { - -- magnifier = { - -- distortionType = 'point', - -- pieceName = 'base', - -- distortionConfig = { posx = 0, posy = 25, posz = 0, radius = 20, - -- lifeTime = 0, - -- magnificationRate = 4.0, effectType = "magnifier"}, - -- }, - }, - - ['armhawk'] = { - thrust = { - distortionType = 'cone', - pieceName = 'thrust', - distortionConfig = { posx = 0, posy = -1, posz = 20, radius = 120, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.05, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 15.0, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armblade'] = { - thrustdown = { - distortionType = 'cone', - pieceName = 'trust', - distortionConfig = { posx = 0, posy = 4, posz = 4, radius = 40, - dirx = 0, diry = -1, dirz = 0.1, theta = 0.8, - noiseStrength = 0.7, noiseScaleSpace = 1.45, distanceFalloff = 1.0, - effectStrength = 1.5, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - }, - - ['armbrawl'] = { - thrustdown = { - distortionType = 'point', - pieceName = 'fan', - distortionConfig = { posx = 0, posy = -11, posz = 0, radius = 10, - noiseStrength = 0.7, noiseScaleSpace = -1.45, distanceFalloff = 1.2, - effectStrength = 1.5, - riseRate = -6, lifeTime = 0, effectType = 0}, - }, - }, - - ['armstil'] = { - thrusta = { - distortionType = 'cone', - pieceName = 'thrusta', - distortionConfig = { posx = 0, posy = -1, posz = 20, radius = 120, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.05, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - thrustb = { - distortionType = 'cone', - pieceName = 'thrustb', - distortionConfig = { posx = 0, posy = -1, posz = 20, radius = 120, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.05, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armdfly'] = { - thrust1 = { - distortionType = 'cone', - pieceName = 'thrustb', - distortionConfig = { posx = -19.8, posy = 5, posz = 64.3, radius = 40, - dirx = 0, diry = -1, dirz = 0.1, theta = 0.8, - noiseStrength = 1, noiseScaleSpace = 0.65, distanceFalloff = 1.0, - effectStrength = 1.2, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - thrust2 = { - distortionType = 'cone', - pieceName = 'thrusta', - distortionConfig = { posx = 19.8, posy = 5, posz = 64.3, radius = 40, - dirx = 0, diry = -1, dirz = 0.1, theta = 0.8, - noiseStrength = 1, noiseScaleSpace = 0.65, distanceFalloff = 1.0, - effectStrength = 1.2, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - thrust3 = { - distortionType = 'cone', - pieceName = 'thrustb', - distortionConfig = { posx = -19.8, posy = 5, posz = 34, radius = 40, - dirx = 0, diry = -1, dirz = 0.1, theta = 0.8, - noiseStrength = 1, noiseScaleSpace = 0.65, distanceFalloff = 1.0, - effectStrength = 1.2, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - thrust4 = { - distortionType = 'cone', - pieceName = 'thrusta', - distortionConfig = { posx = 19.8, posy = 5, posz = 34, radius = 40, - dirx = 0, diry = -1, dirz = 0.1, theta = 0.8, - noiseStrength = 1, noiseScaleSpace = 0.65, distanceFalloff = 1.0, - effectStrength = 1.2, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - }, - - ['armawac'] = { - thrust = { - distortionType = 'cone', - pieceName = 'thrust', - distortionConfig = { posx = 0, posy = -1, posz = 20, radius = 120, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.05, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armpnix'] = { - thrusta = { - distortionType = 'cone', - pieceName = 'thrusta', - distortionConfig = { posx = 0, posy = -1, posz = 20, radius = 130, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.06, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 10.0, - lifeTime = 0, effectType = 0}, - }, - thrustb = { - distortionType = 'cone', - pieceName = 'thrustb', - distortionConfig = { posx = 0, posy = -1, posz = 20, radius = 130, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.06, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 10.0, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armliche'] = { - engineheata = { - distortionType = 'point', - pieceName = 'wing1', - distortionConfig = { posx = 0, posy = 0, posz = -24, radius = 3.5, - noiseStrength = 0.8, noiseScaleSpace = 3, distanceFalloff = 0.8, - windAffected = 1, riseRate = 0.5, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - engineheatb = { - distortionType = 'point', - pieceName = 'wing2', - distortionConfig = { posx = 0, posy = 0, posz = -24, radius = 3.5, - noiseStrength = 0.8, noiseScaleSpace = 3, distanceFalloff = 0.8, - windAffected = 1, riseRate = 0.5, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - engineheatc = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 9, posz = -21, radius = 3.5, - noiseStrength = 0.8, noiseScaleSpace = 3, distanceFalloff = 0.8, - windAffected = 1, riseRate = 0.5, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - thrusta = { - distortionType = 'cone', - pieceName = 'thrusta', - distortionConfig = { posx = 0, posy = -1, posz = -25, radius = 120, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.09, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - thrustb = { - distortionType = 'cone', - pieceName = 'thrustb', - distortionConfig = { posx = 0, posy = -1, posz = -25, radius = 120, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.09, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - thrustc = { - distortionType = 'cone', - pieceName = 'thrustc', - distortionConfig = { posx = 0, posy = -1, posz = 0, radius = 100, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.09, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 2.0, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armtide'] = { - waterflow = { - distortionType = 'beam', - pieceName = 'wheel', - distortionConfig = { posx = 0, posy = -2.2, posz = -18, radius = 12, - pos2x = 0, pos2y = -2.2, pos2z = 18, radius2 = 12, - noiseStrength = 2.5, noiseScaleSpace = 0.7, distanceFalloff = 0.5, - rampUp = 0, decay = 0, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 0}, - - }, - }, - - ['corvamp'] = { - thrust = { - distortionType = 'cone', - pieceName = 'thrust', - distortionConfig = { posx = 0, posy = 0, posz = 20, radius = 100, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.15, - noiseStrength = 2, noiseScaleSpace = 0.75, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armpeep'] = { - thrust1 = { - distortionType = 'cone', - pieceName = 'jet1', - distortionConfig = { posx = 0, posy = 0, posz = 5, radius = 130, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.08, - noiseStrength = 3, noiseScaleSpace = 0.85, distanceFalloff = 1.9, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - thrust2 = { - distortionType = 'cone', - pieceName = 'jet2', - distortionConfig = { posx = 0, posy = 0, posz = 5, radius = 130, - dirx = 0, diry = -0, dirz = -1.0, theta = 0.08, - noiseStrength = 2, noiseScaleSpace = 0.85, distanceFalloff = 1.9, - effectStrength = 3.0, - lifeTime = 0, effectType = 0}, - }, - }, - - -- ['armpeep'] = { - -- motionBlur = { - -- distortionType = 'point', - -- pieceName = 'base', - -- distortionConfig = { posx = 0, posy = 7.5, posz = 0.01, radius = 23, - -- pos2x = 0, pos2y = 100, pos2z = 0, - -- noiseScaleSpace = 1, onlyModelMap = -1, - -- lifeTime = 0, effectType = 11}, - -- }, - -- }, - - -- ['armck'] = { - -- beamDistortion = { - -- distortionType = 'beam', - -- pieceName = 'base', - -- distortionConfig = { posx = 0, posy = 7.5, posz = 0.01, radius = 23, - -- pos2x = 0, pos2y = 100, pos2z = 0, radius2 = 23, - -- noiseScaleSpace = 1, - -- lifeTime = 0, effectType = 0}, - -- }, - -- }, - -- ['corck'] = { - -- beamDistortion = { - -- distortionType = 'beam', - -- pieceName = 'base', - -- distortionConfig = { posx = 0, posy = 7.5, posz = 0.01, radius = 23, - -- pos2x = 0, pos2y = 100, pos2z = 0, radius2 = 23, - -- noiseScaleSpace = -1, - -- lifeTime = 0, effectType = 0}, - -- }, - -- }, - - ['armsnipe'] = { - snipecloakbeam = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 7.5, posz = 0.01, radius = 15, - pos2x = 0, pos2y = 30, pos2z = 0, radius2 = 15, - - noiseStrength = 3, noiseScaleSpace = -1.5, distanceFalloff = 0.25, onlyModelMap = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armamex'] = { - cloakbeam = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 34, posz = 0.01, radius = 20, - pos2x = 0, pos2y = 35, pos2z = 0, - windAffected = -1, riseRate = -0.5, - noiseStrength = 2, noiseScaleSpace = 1, distanceFalloff = 0.25, onlyModelMap = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armspy'] = { - spycloakbeam = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 0, posy = 2.5, posz = 0.01, radius = 15, - pos2x = 0, pos2y = 30, pos2z = 0, radius2 = 15, - - noiseStrength = 3, noiseScaleSpace = 1.5, distanceFalloff = 0.25, onlyModelMap = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armveil'] = { - -- magnifier = { - -- distortionType = 'point', - -- pieceName = 'base', - -- distortionConfig = { posx = 0, posy = 90, posz = 0, radius = 20, - -- lifeTime = 0, - -- magnificationRate = 10.0, effectType = "magnifier"}, - -- }, - jamdistortion = { - distortionType = 'point', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 18, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armjam'] = { - jamdistortion = { - distortionType = 'point', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = -12, posz = 0, radius = 10, - noiseStrength = 20, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['coreter'] = { - jamdistortion = { - distortionType = 'point', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = -3, radius = 11, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.2, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corshroud'] = { - jamdistortion = { - distortionType = 'point', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 18, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corap'] = { - heatvent1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -43, posy = 28, posz = 16.5, radius = 8, - pos2x = -43, pos2y = 35, pos2z = 16.4, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['corpyro'] = { - flameheat = { - distortionType = 'beam', - pieceName = 'lloarm', - distortionConfig = { posx = 0, posy = -0.4, posz = 17, radius = 5.5, - pos2x = 0, pos2y = -0.4, pos2z = 18, - noiseStrength = 1.0, noiseScaleSpace = -2.0, distanceFalloff = 1.5, - effectStrength = 1.0, - windAffected = 0.5, riseRate = 1.2, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['cordemon'] = { - flameheatl = { - distortionType = 'beam', - pieceName = 'lfbarrel1', - distortionConfig = { posx = -2, posy = -0.4, posz = 5, radius = 8.5, - pos2x = -2, pos2y = -0.4, pos2z = 6, - noiseStrength = 1.0, noiseScaleSpace = -2.0, distanceFalloff = 1.5, - effectStrength = 1.0, - windAffected = 0.5, riseRate = 1.2, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - flameheatr = { - distortionType = 'beam', - pieceName = 'rfbarrel1', - distortionConfig = { posx = -2, posy = -0.4, posz = 5, radius = 8.5, - pos2x = -2, pos2y = -0.4, pos2z = 6, - noiseStrength = 1.0, noiseScaleSpace = -2.0, distanceFalloff = 1.5, - effectStrength = 1.0, - windAffected = 0.5, riseRate = 1.2, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['corint'] = { - heatvent1 = { - distortionType = 'beam', - pieceName = 'gun', - distortionConfig = { posx = 0, posy = 20, posz = -14.5, radius = 8, - pos2x = 0, pos2y = 26, pos2z = -14.4, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['coravp'] = { - factoryheat = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = -7, posy = 40, posz = -35, radius = 12, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - factoryheat2 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 7, posy = 40, posz = -35, radius = 12, - noiseStrength = 0.6, noiseScaleSpace = -1.9, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - factoryheatback1 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = -55, posy = 12, posz = -42, radius = 9, - noiseStrength = 0.9, noiseScaleSpace = -2.9, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - factoryheatback2 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 55, posy = 12, posz = -42, radius = 9, - noiseStrength = 0.9, noiseScaleSpace = -2.9, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['corgant'] = { - factoryheat1 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = -60, posy = 55, posz = -51, radius = 20, - noiseStrength = 0.6, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - factoryheat2 = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 60, posy = 55, posz = -51, radius = 20, - noiseStrength = 0.6, noiseScaleSpace = -1.9, distanceFalloff = 1.4, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatventfront1 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 54, posy = 60, posz = 5.5, radius = 10, - pos2x = 54, pos2y = 60, pos2z = 22.4, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatventfront1B = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 83, posy = 60, posz = 5.5, radius = 10, - pos2x = 83, pos2y = 60, pos2z = 22.4, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatventfront2 = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -54, posy = 60, posz = 5.5, radius = 10, - pos2x = -54, pos2y = 60, pos2z = 22.4, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - heatventfront2B = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -83, posy = 60, posz = 5.5, radius = 10, - pos2x = -83, pos2y = 60, pos2z = 22.4, - noiseStrength = 0.5, noiseScaleSpace = -2, distanceFalloff = 1.4, - windAffected = -1, riseRate = 1, - lifeTime = 0, effectType = 'heatDistortion'}, - }, - }, - - ['corfus'] = { - distortion = { - distortionType = 'point', - pieceName = 'emit', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 23, - noiseStrength = 1, noiseScaleSpace = 2.0, distanceFalloff = 1.5, - --windAffected = -1, riseRate = -1.1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corafus'] = { - distortion = { - distortionType = 'point', - pieceName = 'emit', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 36, - noiseStrength = 1.5, noiseScaleSpace = 1.5, distanceFalloff = 2.0, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armfus'] = { - distortion1 = { - distortionType = 'point', - pieceName = 'emit1', - distortionConfig = { posx = 0, posy = -2, posz = 0, radius = 15, - noiseStrength = 2, noiseScaleSpace = -1.2, distanceFalloff = 0.9, - windAffected = -0.5, riseRate = -2, decay = -1.3, - lifeTime = 0, effectType = 0}, - }, - distortion2 = { - distortionType = 'point', - pieceName = 'emit2', - distortionConfig = { posx = 0, posy = -2, posz = 0, radius = 15, - noiseStrength = 2, noiseScaleSpace = -1.2, distanceFalloff = 0.9, - windAffected = -0.5, riseRate = -2, decay = -1.3, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armafus'] = { - distortion = { - distortionType = 'point', - pieceName = 'emit', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 37, - noiseStrength = 1, noiseScaleSpace = 2, distanceFalloff = 1.2, - --riseRate = 2, windAffected = -1, - --decay = 3.5, - lifeTime = 0, effectType = 0}, - }, - -- magnifier = { - -- distortionType = 'point', - -- pieceName = 'emit', - -- distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 32, - -- lifeTime = 0, - -- magnificationRate = 1.5, effectType = "magnifier"}, - -- }, - }, - - ['armgate'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 24, posz = -5, radius = 14, - noiseStrength = 1, noiseScaleSpace = 0.5, distanceFalloff = 0.3, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - -- cloakblob = { - -- distortionType = 'point', - -- pieceName = 'turret', - -- distortionConfig = { posx = 0, posy = 24, posz = -5, radius = 14, - -- lifeTime = 0, - -- magnificationRate = 1.5, effectType = "magnifier"}, - -- }, - shielddistortion = { - distortionType = 'point', - pieceName = 'base', - distortionConfig = { posx = 0, posy = -6.5, posz = 0.01, radius = 552, - pos2x = 0, pos2y = 20, pos2z = 0, radius2 = 20, - noiseStrength = 5.5, noiseScaleSpace = -0.15, distanceFalloff = -0.5, - rampUp = 0, decay = 0, - --magnificationRate = -8.0, - lifeTime = 0, windAffected = -1, riseRate = -0.6, - effectType = 7}, - - }, - }, - - ['armfgate'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 25, posz = 0, radius = 16, - noiseStrength = 1, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corgate'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 40, posz = 0, radius = 12, - noiseStrength = 1, noiseScaleSpace = 0.5, distanceFalloff = 0.3, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - -- distortionold = { - -- distortionType = 'point', - -- pieceName = 'none', - -- distortionConfig = { posx = 0, posy = 40, posz = 0, radius = 16, - -- noiseStrength = 1, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - -- windAffected = -0.5, - -- lifeTime = 0, effectType = 0}, - -- }, - }, - - ['corfgate'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 42, posz = 0, radius = 16, - noiseStrength = 1, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corjamt'] = { - distortion = { - distortionType = 'point', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 12, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armjamt'] = { - jamdistortion = { - distortionType = 'point', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 15, posz = 0, radius = 12, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, riseRate = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corsjam'] = { - distortionbeam = { - distortionType = 'beam', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = -4, radius = 4.5, - pos2x = 0, pos2y = 0, pos2z = 4, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['cormando'] = { - distortionbeam = { - distortionType = 'beam', - pieceName = 'turret', - distortionConfig = { posx = 0, posy = 7, posz = 0, radius = 3.5, - pos2x = 0, pos2y = 6, pos2z = 0.1, - noiseStrength = 2, noiseScaleSpace = -1.8, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - cloakblob = { - distortionType = 'point', - pieceName = 'turret', - distortionConfig = { posx = 0, posy = 6.5, posz = 0, radius = 3, - lifeTime = 0, - magnificationRate = 1.2, effectType = "magnifier"}, - }, - -- magnifier = { - -- distortionType = 'point', - -- pieceName = 'turret', - -- distortionConfig = { posx = -8, posy = 10, posz = -3, radius = 4, - -- lifeTime = 0, - -- magnificationRate = 4.0, effectType = "magnifier"}, - -- }, - }, - - ['armsjam'] = { - distortionbeam1 = { - distortionType = 'beam', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = -15, radius = 4.5, - pos2x = 0, pos2y = 0, pos2z = -22, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - distortionbeam2 = { - distortionType = 'beam', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = 15, radius = 4.5, - pos2x = 0, pos2y = 0, pos2z = 22, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['armmark'] = { - -- radarring = { - -- distortionType = 'point', - -- pieceName = 'none', - -- distortionConfig = { posx = 0, posy = 58, posz = 0, radius = 12, - -- noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - -- windAffected = -1, - -- lifeTime = 50, effectType = 'airShockwave'}, - -- }, - }, - - ['armaser'] = { - distortionbeam = { - distortionType = 'beam', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 6.5, - pos2x = -9, pos2y = 0, pos2z = 0.1, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corspec'] = { - distortionbeam = { - distortionType = 'beam', - pieceName = 'jam', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 6.5, - pos2x = 0, pos2y = 0, pos2z = 2, - noiseStrength = 10, noiseScaleSpace = 0.4, distanceFalloff = 1.5, - windAffected = -1, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corjuno'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 72, posz = 0, radius = 11, - noiseStrength = 3, noiseScaleSpace = -0.2, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - ['corjugg'] = { - distortion = { - distortionType = 'point', - pieceName = 'mainbarrel', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 3.6, - noiseStrength = 3, noiseScaleSpace = -1.6, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - cloakblob = { - distortionType = 'point', - pieceName = 'mainbarrel', - distortionConfig = { posx = 0, posy = 0, posz = 2, radius = 4.5, - lifeTime = 0, - magnificationRate = -0.2, effectType = "magnifier"}, - }, - }, - - - ['armjuno'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 72, posz = 0, radius = 11, - noiseStrength = 3, noiseScaleSpace = -0.2, distanceFalloff = 0.5, - windAffected = -0.5, --riseRate = -0.9, - lifeTime = 0, effectType = 0}, - }, - }, - - ['lootboxbronze'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 34, posz = 0, radius = 14, - noiseStrength = 1, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - ['lootboxsilver'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 52, posz = 0, radius = 18, - noiseStrength = 1, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - ['lootboxgold'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 69, posz = 0, radius = 23, - noiseStrength = 1, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - ['lootboxplatinum'] = { - distortion = { - distortionType = 'point', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 87, posz = 0, radius = 30, - noiseStrength = 1, noiseScaleSpace = 1.5, distanceFalloff = 0.5, - windAffected = -0.5, - lifeTime = 0, effectType = 0}, - }, - }, - - - ['corcrwh'] = { - - thrust1 = { - distortionType = 'cone', - pieceName = 'thrustrra', - distortionConfig = { posx = -2, posy = 0, posz = -2, radius = 80, - dirx = 0, diry = 0, dirz = -1, theta = 0.4, - noiseStrength = 1, noiseScaleSpace = 0.65, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - - thrust2 = { - distortionType = 'cone', - pieceName = 'thrustrla', - distortionConfig = { posx = -2, posy = 0, posz = -2, radius = 80, - dirx = 0, diry = 0, dirz = -1, theta = 0.4, - noiseStrength = 1, noiseScaleSpace = 0.65, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - thrust3 = { - distortionType = 'cone', - pieceName = 'thrustfla', - distortionConfig = { posx = -2, posy = 0, posz = -2, radius = 80, - dirx = 0, diry = 0, dirz = -1, theta = 0.4, - noiseStrength = 1, noiseScaleSpace = 0.65, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - thrust4 = { - distortionType = 'cone', - pieceName = 'thrustfra', - distortionConfig = { posx = -2, posy = 0, posz = -2, radius = 80, - dirx = 0, diry = 0, dirz = -1, theta = 0.4, - noiseStrength = 1, noiseScaleSpace = 0.65, - riseRate = -8, lifeTime = 0, effectType = 0}, - }, - distortionleft = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = 15, posy = 32, posz = -21, radius = 8, - pos2x = 15, pos2y = 32, pos2z = 7, radius2 = 28, - noiseStrength = 0.2, noiseScaleSpace = -2.1, distanceFalloff = 0.8, - rampUp = 30, decay = -1.5, - lifeTime = 0, effectType = 0}, - }, - distortionright = { - distortionType = 'beam', - pieceName = 'base', - distortionConfig = { posx = -15, posy = 32, posz = -21, radius = 8, - pos2x = -15, pos2y = 32, pos2z = 7, radius2 = 28, - noiseStrength = 0.2, noiseScaleSpace = -2.1, distanceFalloff = 0.8, - rampUp = 30, decay = -1.5, - lifeTime = 0, effectType = 0}, - }, - }, -} - - --- Effect duplications: -unitDistortions['armdecom'] = unitDistortions['armcom'] -unitDistortions['corgantuw'] = unitDistortions['corgant'] - -local unitEventDistortionsNames = { - ------------------------------------ Put distortions that are slaved to ProjectileCreated here! --------------------------------- - -- WeaponBarrelGlow = { - -- ['corint'] = { - -- barrelglow1 = { - -- distortionType = 'point', - -- pieceName = 'distortion', - -- distortionConfig = { posx = -7, posy = 8, posz = 5, radius = 30, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, - -- r = 1, g = 1, b = 1, a = 0.69999999, - -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - -- lifeTime = 300, sustain = 1, effectType = 0}, - -- }, - -- }, - -- ['corint'] = { - -- barrelglow2 = { - -- distortionType = 'point', - -- pieceName = 'distortion', - -- distortionConfig = { posx = 7, posy = 8, posz = 5, radius = 30, - -- color2r = 0, color2g = 0, color2b = 0, colortime = 300, - -- r = 1, g = 1, b = 1, a = 0.69999999, - -- modelfactor = 2, specular = 1, scattering = 0, lensflare = 0, - -- lifeTime = 300, sustain = 1, effectType = 0}, - -- }, - -- }, - -- }, - --------------------------------- Put distortions that are spawned from COB/LUS here ! --------------------------------- - -- These distortions _must_ be indexed by numbers! As these will be the ones triggered by the - -- The COB lua_UnitScriptDistortion(distortionIndex, count) call does this job! - -- to make the distortion EXACTLY color2 at the end of the lifeTime, make colortime = 2 * lifeTime - - --corint disabled for now since it has static positioning - now only 'working' when shooting to east: - - UnitScriptDistortions = { - - ['corkorg'] = { - [1] = { - -- Footstep shockwave - alwaysVisible = false, - distortionType = 'point', - distortionName = 'corkorgfootstep', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 0, posz = 8, radius = 120, - noiseStrength = 1.2, noiseScaleSpace = 0.5, distanceFalloff = 0.4, onlyModelMap = 1, - effectStrength = 1.0, --needed for shockwave - lifeTime = 25, rampUp = 3, decay = 15, startRadius = 0.3, - shockWidth = 5, effectType = 'groundShockwave'}, - - }, - }, - - ['corjugg'] = { - [1] = { - -- Footstep shockwave - alwaysVisible = false, - distortionType = 'point', - distortionName = 'bigassfootstep', - pieceName = 'lfootstepf', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 60, - noiseStrength = 1.1, noiseScaleSpace = 0.6, distanceFalloff = 0.4, onlyModelMap = 1, - effectStrength = 1.2, --needed for shockwave - lifeTime = 18, rampUp = 10, decay = 10, - shockWidth = 1.5, startRadius = 0.1, effectType = 'groundShockwave'}, - - }, - [2] = { - -- Footstep shockwave - alwaysVisible = false, - distortionType = 'point', - distortionName = 'bigassfootstep2', - pieceName = 'rfootstepf', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 60, - noiseStrength = 1.1, noiseScaleSpace = 0.6, distanceFalloff = 0.4, onlyModelMap = 1, - effectStrength = 1.2, --needed for shockwave - lifeTime = 18, rampUp = 10, decay = 10, - shockWidth = 1.5, startRadius = 0.1, effectType = 'groundShockwave'}, - }, - [3] = { - -- Footstep shockwave - alwaysVisible = false, - distortionType = 'point', - distortionName = 'bigassfootstep3', - pieceName = 'lfootstepb', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 52, - noiseStrength = 1.1, noiseScaleSpace = 0.6, distanceFalloff = 0.4, onlyModelMap = 1, - effectStrength = 1.2, --needed for shockwave - lifeTime = 18, rampUp = 10, decay = 10, - shockWidth = 1.5, startRadius = 0.1, effectType = 'groundShockwave'}, - - }, - [4] = { - -- Footstep shockwave - alwaysVisible = false, - distortionType = 'point', - distortionName = 'bigassfootstep4', - pieceName = 'rfootstepb', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 52, - noiseStrength = 1.1, noiseScaleSpace = 0.6, distanceFalloff = 0.4, onlyModelMap = 1, - effectStrength = 1.2, --needed for shockwave - lifeTime = 18, rampUp = 10, decay = 10, - shockWidth = 1.5, startRadius = 0.1, effectType = 'groundShockwave'}, - - }, - }, - - - ['armmark'] = { - [1] = { - -- radarwave - alwaysVisible = false, - distortionType = 'point', - distortionName = 'radarwave', - pieceName = 'none', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 60, - noiseStrength = 0.2, noiseScaleSpace = 0.8, distanceFalloff = 0.1, onlyModelMap = 1, - effectStrength = -1.5, --needed for shockwave - lifeTime = 60, rampUp = 20, decay = 15, - shockWidth = 0.7, effectType = 'groundShockwave'}, - - }, - }, - - ['cordemon'] = { - [1] = { - -- Barrel Heat - alwaysVisible = false, - distortionType = 'point', - distortionName = 'flameheat1', - pieceName = 'lfbarrel2', - distortionConfig = { posx = 0, posy = 5, posz = 0, radius = 11, - noiseStrength = 0.4, noiseScaleSpace = 1.8, distanceFalloff = 1.1, - onlyModelMap = 0, - effectStrength = 1.0, --needed for heat - riseRate = 1.2, windAffected = 0.3, - lifeTime = 250, rampUp = 40, decay = 120, - effectType = 0}, - }, - [2] = { - -- Barrel Heat - alwaysVisible = false, - distortionType = 'point', - distortionName = 'flameheat2', - pieceName = 'rfbarrel2', - distortionConfig = { posx = 0, posy = 5, posz = 0, radius = 11, - noiseStrength = 0.4, noiseScaleSpace = 1.8, distanceFalloff = 1.1, - onlyModelMap = 0, - effectStrength = 1.0, --needed for heat - riseRate = 1.2, windAffected = 0.3, - lifeTime = 250, rampUp = 40, decay = 120, - effectType = 0}, - }, - -- [3] = { - -- -- Flame distort - -- alwaysVisible = false, - -- distortionType = 'beam', - -- distortionName = 'flamedistort', - -- pieceName = 'rfbarrel2', - -- distortionConfig = { posx = 0, posy = 5, posz = 25, radius = 35, - -- pos2x = 0, pos2y = 5, pos2z = 185, - -- noiseStrength = 4, noiseScaleSpace = -0.3, distanceFalloff = 3.5, - -- onlyModelMap = 0, - -- effectStrength = 3.0, --needed for heat - -- windAffected = 0.1, riseRate = -0.5, - -- lifeTime = 15, rampUp = 0, decay = 0, - -- effectType = 0}, - -- }, - [3] = { - -- Flame distort - alwaysVisible = false, - distortionType = 'cone', - distortionName = 'flamedistort', - pieceName = 'rfbarrel2', - distortionConfig = { posx = 0, posy = 5, posz = 0, radius = 350, - dirx = 0, diry = 0, dirz = 1.0, theta = 0.3, - noiseStrength = 4, noiseScaleSpace = -0.2, distanceFalloff = 3.5, - onlyModelMap = 0, - effectStrength = 3.0, --needed for heat - windAffected = 0.1, riseRate = -0.5, - lifeTime = 15, rampUp = 25, decay = 0, - effectType = 0}, - }, - [4] = { - -- Flame distort - alwaysVisible = false, - distortionType = 'cone', - distortionName = 'flamedistort', - pieceName = 'lfbarrel2', - distortionConfig = { posx = 0, posy = 5, posz = 0, radius = 350, - dirx = 0, diry = 0, dirz = 1.0, theta = 0.4, - noiseStrength = 4, noiseScaleSpace = 0.12, distanceFalloff = 3.5, - onlyModelMap = 0, - effectStrength = 2.0, --needed for heat - windAffected = 0.1, riseRate = -0.5, - lifeTime = 15, rampUp = 25, decay = 0, - effectType = 0}, - }, - }, - - ['armraz'] = { - [1] = { - -- Barrel Heat - alwaysVisible = false, - distortionType = 'point', - distortionName = 'barrelheatl', - pieceName = 'lcannon', - distortionConfig = { posx = 0, posy = 7, posz = 23.5, radius = 8, - noiseStrength = 0.6, noiseScaleSpace = -1.8, distanceFalloff = 0.8, - onlyModelMap = 0, - effectStrength = 1.0, --needed for heat - lifeTime = 160, rampUp = 25, decay = 25, - riseRate = 0.2, windAffected = -0.3, - effectType = 0}, - }, - [2] = { - -- Barrel Heat - alwaysVisible = false, - distortionType = 'point', - distortionName = 'barrelheatr', - pieceName = 'rcannon', - distortionConfig = { posx = 0, posy = 7, posz = 23.5, radius = 8, - noiseStrength = 0.6, noiseScaleSpace = -1.8, distanceFalloff = 0.8, - onlyModelMap = 0, - effectStrength = 1.0, --needed for heat - lifeTime = 160, rampUp = 25, decay = 25, - riseRate = 0.2, windAffected = -0.3, - effectType = 0}, - }, - }, - - - ['armbrtha'] = { - [1] = { - -- Barrel Heat after shot - alwaysVisible = false, - distortionType = 'beam', - distortionName = 'brthabarrelheat', - pieceName = 'flare', - distortionConfig = { posx = 0, posy = 4, posz = 4, radius = 10, - pos2x = 0, pos2y = 4, pos2z = -16, - onlyModelMap = 0, - riseRate = 0.5, windAffected = -0.5, - noiseStrength = 0.3, noiseScaleSpace = 1.0, distanceFalloff = 1.0, - rampUp = 5, decay = 200, - lifeTime = 240, effectType = 0}, - - }, - }, - - ['corint'] = { - [1] = { - -- Barrel Heat after shot - alwaysVisible = false, - distortionType = 'beam', - distortionName = 'corintbarrelheat', - pieceName = 'heat', - distortionConfig = { posx = 0, posy = 4, posz = 4, radius = 10, - pos2x = 0, pos2y = 4, pos2z = -16, - onlyModelMap = 0, - riseRate = 0.5, windAffected = -0.5, - noiseStrength = 0.3, noiseScaleSpace = 1.0, distanceFalloff = 1.0, - rampUp = 5, decay = 200, - lifeTime = 240, effectType = 0}, - - }, - }, - }, - - - - - ------------------------------- Put additional distortions tied to events here! -------------------------------- - UnitIdle = { - --[[ - ['armcom'] = { - idleBlink = { - distortionType = 'point', - pieceName = 'head', - distortionConfig = { posx = 0, posy = 22, posz = 12, radius = 90, - lifeTime = 12, effectType = 0}, - }, - }, - ]]-- - }, - - UnitFinished = { - --[[ - default = { - default = { - distortionType = 'cone', - --pieceName = 'base', - aboveUnit = 100, - distortionConfig = { posx = 0, posy = 32, posz = 0, radius = 160, - dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, - lifeTime = 20, sustain = 2, effectType = 0}, - }, - }, - ]]-- - }, - - UnitCreated = { - --[[ - default = { - default = { - distortionType = 'cone', - pieceName = 'base', - aboveUnit = 100, - distortionConfig = { posx = 0, posy = 32, posz = 0, radius = 200, - dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, - lifeTime = 15, sustain = 2, effectType = 0}, - }, - }, - ]]-- - }, - - UnitCloaked = { - --[[ - ['armcom'] = { - cloakBlink = { - distortionType = 'point', - pieceName = 'head', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 100, - lifeTime = 30, effectType = 0}, - }, - -- cloakFlash = { - -- distortionType = 'point', - -- pieceName = 'head', - -- distortionConfig = { posx = 0, posy = -10, posz = 0, radius = 70, - -- color2r = 1, color2g = 1, color2b = 1, colortime = 5, - -- r = 0, g = 0, b = 0, a = 0.45, - -- modelfactor = 0.2, specular = 0.4, scattering = 1.5, lensflare = 0, - -- lifeTime = 5, effectType = 0}, - -- }, - }, - default = { - default = { - distortionType = 'cone', - pieceName = 'base', - aboveUnit = 100, - distortionConfig = { posx = 0, posy = 32, posz = 0, radius = 200, - dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, - lifeTime = 15, effectType = 0}, - }, - }, - ]]-- - }, - - UnitDecloaked = { - --[[ - ['armcom'] = { - cloakBlink = { - distortionType = 'point', - pieceName = 'head', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 100, - lifeTime = 30, effectType = 0}, - }, - }, - default = { - default = { - distortionType = 'cone', - pieceName = 'base', - aboveUnit = 100, - distortionConfig = { posx = 0, posy = 32, posz = 0, radius = 200, - dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, - lifeTime = 15, effectType = 0}, - }, - }, - ]]-- - }, - - StockpileChanged = { - }, - UnitMoveFailed = { - }, - - UnitGiven = { - }, - UnitTaken = { - }, - UnitDestroyed = { -- note: dont do piece-attached distortions here! - --[[ - default = { - default = { - distortionType = 'cone', - pieceName = '', - aboveUnit = 100, - distortionConfig = { posx = 0, posy = 32, posz = 0, radius = 200, - dirx = 0, diry = -0.99, dirz = 0.02, theta = 0.4, - lifeTime = 15, effectType = 0}, - }, - }, - ]]-- - }, -} - --- Copy all distortions from source unitname to array of target unitnames -local function DuplicateDistortions(source, targets) - for i, target in pairs(targets) do - if UnitDefNames[source] and UnitDefNames[target] then - if unitDistortions[source] then - unitDistortions[target] = table.copy(unitDistortions[source]) - end - - for eventName, distortions in pairs(unitEventDistortionsNames) do - if unitEventDistortionsNames[eventName][source] then - unitEventDistortionsNames[eventName][target] = table.copy(unitEventDistortionsNames[eventName][source]) - end - end - end - end -end - - ---duplicate distortions from armcom for Armada Evocom -local armComTable = {'armcomlvl2', 'armcomlvl4', 'armcomlvl5', 'armcomlvl6', 'armcomlvl7', 'armcomlvl8', 'armcomlvl9', 'armcomlvl10'} -DuplicateDistortions('armcom', armComTable) - - ---duplicate distortions from corcom for Cortex Evocom -local corComTable = {'corcomlvl2', 'corcomlvl3', 'corcomlvl4', 'corcomlvl5', 'corcomlvl6', 'corcomlvl7', 'corcomlvl8', 'corcomlvl9', 'corcomlvl10'} -DuplicateDistortions('corcom', corComTable) - - - ---duplicate distortions from legcom for Legion Evocom -local legComTable = {'legcomlvl2', 'legcomlvl3', 'legcomlvl4', 'legcomlvl5', 'legcomlvl6', 'legcomlvl7', 'legcomlvl8', 'legcomlvl9', 'legcomlvl10', 'legdecomlvl3', 'legdecomlvl6', 'legdecomlvl10'} -DuplicateDistortions('legcom', legComTable) - - ---duplicate distortions from scavengerbossv4_normal for all scavengerbossv4 variants -local scavengerBossV4Table = {'scavengerbossv4_veryeasy', 'scavengerbossv4_easy', 'scavengerbossv4_hard', 'scavengerbossv4_veryhard', 'scavengerbossv4_epic'} -DuplicateDistortions('scavengerbossv4_normal', scavengerBossV4Table) - - ---AND THE REST ----unitEventDistortionsNames -> unitEventDistortions -local unitEventDistortions = {} -for key, subtables in pairs(unitEventDistortionsNames) do - unitEventDistortions[key] = {} - for subKey, distortions in pairs(subtables) do - if UnitDefNames[subKey] then - unitEventDistortions[key][UnitDefNames[subKey].id] = distortions - else - unitEventDistortions[key][subKey] = distortions --preserve defaults etc - end - end -end -unitEventDistortionsNames = nil - - --- convert unitname -> unitDefID -local unitDefDistortions = {} -for unitName, distortions in pairs(unitDistortions) do - if UnitDefNames[unitName] then - unitDefDistortions[UnitDefNames[unitName].id] = distortions - end -end -unitDistortions = nil - --- oof this should not be a GetConfigInt :/ -if not (Spring.GetConfigInt("headdistortions", 1) == 1) then - for unitDefID, distortions in pairs(unitDefDistortions) do - for name, params in pairs(distortions) do - if string.find(name, "headdistortion") or string.find(name, "searchdistortion") then - unitDefDistortions[unitDefID][name] = nil - end - end - end -end - -if not (Spring.GetConfigInt("builddistortions", 1) == 1) then - for unitDefID, distortions in pairs(unitDefDistortions) do - for name, params in pairs(distortions) do - if string.find(name, "builddistortion") then - unitDefDistortions[unitDefID][name] = nil - end - end - end -end - --- add scavenger equivalents -local scavUnitDefDistortions = {} -for unitDefID, distortions in pairs(unitDefDistortions) do - if UnitDefNames[UnitDefs[unitDefID].name..'_scav'] then - scavUnitDefDistortions[UnitDefNames[UnitDefs[unitDefID].name..'_scav'].id] = distortions - end -end -unitDefDistortions = table.merge(unitDefDistortions, scavUnitDefDistortions) -scavUnitDefDistortions = nil - -local featureDefDistortions = { - -} - -local crystalDistortionBase = { - distortionType = 'point', - distortionConfig = { posx = 0, posy = 8, posz = 0, radius = 20, - onlyModelMap = 0, - riseRate = 0.5, windAffected = -0.5, - - noiseStrength = 0.4, noiseScaleSpace = 2.2, distanceFalloff = 1.2, - lifeTime = 0, effectType = 0}, - } - -local crystalColors = { -- note that the underscores are needed here - [""] = {0.78,0.46,0.94,0.11}, -- same as violet - _violet = {0.8,0.5,0.95,0.33}, - _blue = {0,0,1,0.33}, - _green = {0,1,0,0.15}, - _lime = {0.4,1,0.2,0.15}, - _obsidian = {0.3,0.2,0.2,0.33}, - _quartz = {0.3,0.3,0.5,0.33}, - _orange = {1,0.5,0,0.11}, - _red = {1,0.2,0.2,0.067}, - _teal = {0,1,1,0.15}, - _team = {1,1,1,0.15}, - } - -for colorname, colorvalues in pairs(crystalColors) do - for size = 1,3 do - local crystaldefname = 'pilha_crystal' .. colorname .. tostring(size) - if FeatureDefNames[crystaldefname] then - local crystalDistortion = table.copy(crystalDistortionBase) - crystalDistortion.distortionConfig.r = colorvalues[1] - crystalDistortion.distortionConfig.g = colorvalues[2] - crystalDistortion.distortionConfig.b = colorvalues[3] - crystalDistortion.distortionConfig.a = colorvalues[4] - - crystalDistortion.distortionConfig.color2r = colorvalues[1] * 0.6 - crystalDistortion.distortionConfig.color2g = colorvalues[2] * 0.6 - crystalDistortion.distortionConfig.color2b = colorvalues[3] * 0.6 - crystalDistortion.distortionConfig.colortime = 0.002 + 0.01 / size - - - crystalDistortion.distortionConfig.radius = (size + 0.2) * (crystalDistortion.distortionConfig.radius * 0.6) - crystalDistortion.distortionConfig.posy = (size + 1.5) * crystalDistortion.distortionConfig.posy - featureDefDistortions[FeatureDefNames[crystaldefname].id] = {crystalDistortion = crystalDistortion} - end - end -end - - -local allDistortions = {unitEventDistortions = unitEventDistortions, unitDefDistortions = unitDefDistortions, featureDefDistortions = featureDefDistortions} - ------------------ Debugging code to do the reverse dump --------------- ---[[ -local distortionParamKeyOrder = { posx = 1, posy = 2, posz = 3, radius = 4, - r = 9, g = 10, b = 11, a = 12, - color2r = 5, color2g = 6, color2b = 7, colortime = 8, -- point distortions only, colortime in seconds for unit-attached - dirx = 5, diry = 6, dirz = 7, theta = 8, -- cone distortions only, specify direction and half-angle in radians - pos2x = 5, pos2y = 6, pos2z = 7, -- beam distortions only, specifies the endpoint of the beam - modelfactor = 13, specular = 14, scattering = 15, lensflare = 16, - lifeTime = 18, sustain = 19, effectType = 20 -} - -for typename, typetable in pairs(allDistortions) do - Spring.Echo(typename) - for distortionunitclass, classinfo in pairs(typetable) do - if type(distortionunitclass) == type(1) then - Spring.Echo(UnitDefs[distortionunitclass].name) - else - Spring.Echo(distortionunitclass) - end - for distortionname, distortioninfo in pairs(classinfo) do - Spring.Echo(distortionname) - local distortionParamTable = distortioninfo.distortionParamTable - Spring.Echo(string.format(" distortionConfig = { posx = %f, posy = %f, posz = %f, radius = %f,", distortioninfo.distortionParamTable[1], distortionParamTable[2],distortionParamTable[3],distortionParamTable[4] )) - if distortioninfo.distortionType == 'point' then - Spring.Echo(string.format(" color2r = %f, color2g = %f, color2b = %f, colortime = %f,", distortioninfo.distortionParamTable[5], distortionParamTable[6],distortionParamTable[7],distortionParamTable[8] )) - - elseif distortioninfo.distortionType == 'beam' then - Spring.Echo(string.format(" pos2x = %f, pos2y = %f, pos2z = %f,", distortioninfo.distortionParamTable[5], distortionParamTable[6],distortionParamTable[7])) - elseif distortioninfo.distortionType == 'cone' then - Spring.Echo(string.format(" dirx = %f, diry = %f, dirz = %f, theta = %f,", distortioninfo.distortionParamTable[5], distortionParamTable[6],distortionParamTable[7],distortionParamTable[8] )) - - end - Spring.Echo(string.format(" r = %f, g = %f, b = %f, a = %f,", distortioninfo.distortionParamTable[9], distortionParamTable[10],distortionParamTable[11],distortionParamTable[12] )) - Spring.Echo(string.format(" modelfactor = %f, specular = %f, scattering = %f, lensflare = %f,", distortioninfo.distortionParamTable[13], distortionParamTable[14],distortionParamTable[15],distortionParamTable[16] )) - Spring.Echo(string.format(" lifeTime = %f, sustain = %f, effectType = %f},", distortioninfo.distortionParamTable[18], distortionParamTable[19],distortionParamTable[20])) - - end - end -end -]]-- - --- Icexuick Check-list - - -return allDistortions - - diff --git a/luaui/configs/DistortionGL4WeaponsConfig.lua b/luaui/configs/DistortionGL4WeaponsConfig.lua deleted file mode 100644 index 7f014980bdc..00000000000 --- a/luaui/configs/DistortionGL4WeaponsConfig.lua +++ /dev/null @@ -1,1472 +0,0 @@ --- This configures all the distortions weapon effects, including: - -- Projectile attached distortions - -- Muzzle flashes - -- Explosion distortions - -- Pieceprojectiles (gibs on death) distortions --- note that weapondef customparams need to be moved out of unitdefs, for ease of configability. - -- customparams= { - -- expl_distortion_skip = bool , -- no explosion on projectile death - -- expl_distortion_color = {rgba} , -- color of the explosion distortion at peak? - -- expl_distortion_opacity = a, -- alpha or power of the distortion - -- expl_distortion_mult = ,-- fuck if i know? - -- expl_distortion_radius = , -- radius - -- expl_distortion_radius_mult = , -- why? - -- expl_distortion_life = , life of the expl distortion? --- concept is: - -- Make a few base classes of distortions - -- auto-assign the majority - -- offer overrideability --- note that Y offset will be very different for points and for beams! --- (c) Beherith (mysterme@gmail.com) - -local exampleDistortion = { - distortionType = 'point', -- or cone or beam - pieceName = nil, -- optional - yOffset = 10, -- optional, gives extra Y height - fraction = 3, -- optional, only every nth projectile gets the effect (randomly) - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 0, - r = 1, g = 1, b = 1, a = 1, - color2r = 1, color2g = 1, color2b = 1, colortime = 15, -- point distortions only, colortime in seconds for unit-attached - dirx = 0, diry = 0, dirz = 1, theta = 0.5, -- cone distortions only, specify direction and half-angle in radians - pos2x = 100, pos2y = 100, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - modelfactor = 1, specular = 1, scattering = 1, lensflare = 1, - lifeTime = 0, sustain = 1, effectType = 0, - }, -} - - -local exampleDistortionBeamShockwave = { - distortionType = 'point', -- or cone or beam - pieceName = nil, -- optional - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 150, - r = 1, g = 1, b = 1, a = 0.075, - pos2x = 100, pos2y = 1000, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - modelfactor = 1, specular = 0.5, scattering = 0.1, lensflare = 1, - lifeTime = 10, sustain = 1, effectType = 'groundShockwave', - }, -} - - --- Local Variables - --------------------------------------------------------------------------------- --- Config - --- Config order is: --- Auto-assign a distortionclass to each weaponDefID --- Override on a per-weaponDefID basis, and copy table before overriding - ---------------------------------General Base Distortion Classes for further useage -------- -local BaseClasses = { - LaserProjectile = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 100, - pos2x = 100, pos2y = 1000, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - lifeTime = 0, sustain = 1, effectType = 0, - }, - }, - - CannonProjectile = { - distortionType = 'point', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 125, - lifeTime = 0, sustain = 0, effectType = 0, - }, - }, - - PlasmaTrailProjectile = { - distortionType = 'cone', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 100, - dirx = 0, diry = 1, dirz = 1.0, theta = 0.09, - noiseStrength = 6, noiseScaleSpace = 0.25, distanceFalloff = 1.5, onlyModelMap = 1, - windAffected = -1, riseRate = 0, yoffset = 5, - lifeTime = 0, rampUp = 30, decay = 5, effectType = 0}, - }, - - LaserBeamShockWaveProjectile = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 150, - pos2x = 100, pos2y = 1000, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - lifeTime = 10, sustain = 1, effectType = 'groundShockwave', - }, - }, - - LaserBeamHeat = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 10, - noiseStrength = 0.5, noiseScaleSpace = 1.3, effectStrength = 1.0, - pos2x = 100, pos2y = 1000, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - lifeTime = 3, rampUp = 3, decay = 0, effectType = 0, - }, - }, - - HeatRayHeat = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 10, - noiseStrength = 0.75, noiseScaleSpace = 0.15, distanceFalloff = 1.5, - windAffected = -1, riseRate = 0.2, - pos2x = 100, pos2y = 1000, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - lifeTime = 3, rampUp = 3, decay = 0, effectType = 0, - }, - }, - HeatRayHeatXL = { --heaviest laserbeam (corkorg) - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 10, - pos2x = 0, pos2y = 0, pos2z = 0, radius2 = 1, - noiseStrength = 4, noiseScaleSpace = 0.03, distanceFalloff = 0.2, - effectStrength = 2.0, - windAffected = -1, riseRate = 2.2, onlyModelMap = 0, - --refractiveIndex = 1.15, - lifeTime = 3, rampUp = 3, decay = 3, effectType = 7, - }, - }, - - TachyonBeam = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 2.2, noiseScaleSpace = 0.03, - windAffected = -1, riseRate = 2.6, onlyModelMap = 0, - pos2x = 100, pos2y = 500, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - lifeTime = 10, sustain = 1, rampUp = 0, decay = 3, effectType = 7, - }, - }, - - LightningBeam = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 10, - noiseStrength = 1.0, noiseScaleSpace = 0.17, distanceFalloff = 1.0, - effectStrength = 2.0, - --windAffected = 2, riseRate = 2, - windAffected = -1, riseRate = -0.6, - pos2x = 100, pos2y = 1000, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - lifeTime = 0, rampUp = 1, decay = 1, effectType = 0, - }, - }, - - EMPBeam = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { - posx = 0, posy = 10, posz = 0, radius = 10, - noiseStrength = 1.0, noiseScaleSpace = 0.18, distanceFalloff = 1.0, - effectStrength = 2.5, - --onlyModelMap = 1, - --windAffected = 2, riseRate = 2, - windAffected = -1, riseRate = -3.2, - pos2x = 100, pos2y = 100, pos2z = 100, -- beam distortions only, specifies the endpoint of the beam - lifeTime = 0, rampUp = 0, decay = 2, effectType = 0, - }, - }, - - MissileProjectile = { - distortionType = 'cone', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 100, - dirx = 0, diry = 1, dirz = 1.0, theta = 0.1, - startRadius = 0.5, onlyModelMap = 1, - noiseStrength = 1.45, noiseScaleSpace = 0.75, distanceFalloff = 1.8, - onlyModelMap = 0, yoffset = 8, - effectStrength = 1.0, windAffected = -1, riseRate = -0.3, - rampUp = 15, lifeTime = 0, sustain = 0, effectType = 0}, - }, - - MissileProjectileXL = { - distortionType = 'cone', - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 130, - startRadius = 0.5, onlyModelMap = 1, - dirx = 0, diry = 1, dirz = 1.0, theta = 0.08, - noiseStrength = 4, noiseScaleSpace = 0.37, distanceFalloff = 1.8, - onlyModelMap = 0, yoffset = 10, - effectStrength = 1.2, windAffected = -1, riseRate = -0.3, - rampUp = 4, lifeTime = 0, sustain = 0, effectType = 0}, - }, - - MissileNukeProjectile = { - distortionType = 'cone', - distortionConfig = { posx = 0, posy = 0, posz = 00, radius = 200, - dirx = 0, diry = 1, dirz = 1.0, theta = 0.3, - noiseStrength = 4, noiseScaleSpace = 0.3, distanceFalloff = 1.0, onlyModelMap = 0, - rampUp = 30, yoffset = 8, - lifeTime = 0, sustain = 0, effectType = 0}, - }, - - - LaserAimProjectile = { - distortionType = 'cone', -- or cone or beam - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 500, - dirx = 1, diry = 0, dirz = 1, theta = 0.02, -- cone distortions only, specify direction and half-angle in radians - lifeTime = 0, sustain = 1, effectType = 0, - }, - }, - - GroundShockWaveXS = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - distanceFalloff = 0.6, noiseStrength = 0.35, noiseScaleSpace = 0.8, - lifeTime = 12, decay = 8, rampUp = 4, - effectStrength = 1.2, --needed for shockwaves - shockWidth = 1, refractiveIndex = 1.1, startRadius = 0.24, - effectType = 'groundShockwave'}, - }, - - GroundShockWave = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - distanceFalloff = 0.5, noiseStrength = 0.5, noiseScaleSpace = 0.8, - lifeTime = 25, decay = 25, rampUp = 15, - effectStrength = 1.5, --needed for shockwaves - shockWidth = 3, refractiveIndex = -1.2, startRadius = 0.24, - effectType = 'groundShockwave'}, - }, - - GroundShockWaveNuke = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - noiseStrength = 2, noiseScaleSpace = 0.10, - effectStrength = 1.0, --needed for shockwaves - lifeTime = 100, decay = 25, rampUp = 5, - shockWidth = 16, refractiveIndex = -1.1, - startRadius = 0.24, - effectType = 'groundShockwave'}, - }, - - GroundShockWaveFuzzy = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - distanceFalloff = 1.0, onlyModelMap = 0, - effectStrength = 1.2, --needed for shockwaves - shockWidth = 3, startRadius = 0.24, - lifeTime = 25, effectType = 'groundShockwave'}, - }, - - AirShockWaveXS = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 1.1, noiseStrength = 0.01, onlyModelMap = 1, - lifeTime = 7, refractiveIndex = 1.03, decay = 4, rampUp = 3, - effectStrength = 0.5, startRadius = 0.20, --needed for all distortions - effectType = "airShockwave", }, - }, - AirShockWave = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.1, noiseStrength = 0.2, onlyModelMap = 0, - lifeTime = 13, refractiveIndex = 1.04, decay = 4, rampUp = 2, - effectStrength = 3.0, startRadius = 0.25, shockWidth = -0.50, - effectType = "airShockwave", }, - - }, - AirShockWaveEMP = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.1, noiseStrength = 0.1, onlyModelMap = 1, - lifeTime = 10, refractiveIndex = 1.03, decay = 4, rampUp = 8, - effectStrength = 1.75, --needed for airshockwaves - effectType = "airShockwave", }, - - }, - AirShockWaveDgun = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.5, noiseStrength = 1, onlyModelMap = 0, - lifeTime = 35, refractiveIndex = 1.05, decay = 3, rampUp = 5, - startRadius = 0.1, shockWidth = 1.9, - effectStrength = 4.5, --needed for airshockwaves - effectType = "airShockwave", }, - - }, - AirShockWaveNuke = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.05, noiseStrength = 0.2, onlyModelMap = 0, - lifeTime = 45, refractiveIndex = 1.1, decay = 4, rampUp = 1, - effectStrength = 20.0, startRadius = 0.2, shockWidth = -0.60,--needed for airshockwaves - effectType = "airShockwave", }, - - }, - AirShockWaveNukeBlast = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 225, - noiseScaleSpace = 0.3, noiseStrength = 0.5, onlyModelMap = 1, - lifeTime = 150, refractiveIndex = 1.5, decay = 60, rampUp = 40, - effectStrength = 1.0, startRadius = 0.05, shockWidth = 0.25, - windAffected = 3, - effectType = "airShockwave", }, - - }, - - UnitExploShockWave = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.1, noiseStrength = 0.2, onlyModelMap = 0, - lifeTime = 13, refractiveIndex = 1.04, decay = 4, rampUp = 2, - effectStrength = 3.0, startRadius = 0.25, shockWidth = -0.50, - effectType = "airShockwave", }, - }, - UnitExploShockWaveXL = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.1, noiseStrength = 0.2, onlyModelMap = 0, - lifeTime = 13, refractiveIndex = 1.04, decay = 4, rampUp = 2, - effectStrength = 3.0, startRadius = 0.25, shockWidth = -0.50, - effectType = "airShockwave", }, - }, - UnitGroundShockWave = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - distanceFalloff = 0.5, noiseStrength = 0.5, noiseScaleSpace = 0.8, - lifeTime = 25, decay = 25, rampUp = 15, - effectStrength = 1.5, --needed for shockwaves - shockWidth = 3, refractiveIndex = -1.2, startRadius = 0.24, - effectType = 'groundShockwave'}, - }, - UnitGroundShockWaveXL = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - distanceFalloff = 0.5, noiseStrength = 0.5, noiseScaleSpace = 0.8, - lifeTime = 25, decay = 25, rampUp = 15, - effectStrength = 1.5, --needed for shockwaves - shockWidth = 3, refractiveIndex = -1.2, startRadius = 0.24, - effectType = 'groundShockwave'}, - }, - - BuildingExploShockWave = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.1, noiseStrength = 0.2, onlyModelMap = 0, - lifeTime = 13, refractiveIndex = 1.04, decay = 4, rampUp = 2, - effectStrength = 3.0, startRadius = 0.25, shockWidth = -0.50, - effectType = "airShockwave", }, - }, - BuildingExploShockWaveXL = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.1, noiseStrength = 0.2, onlyModelMap = 0, - lifeTime = 13, refractiveIndex = 1.04, decay = 4, rampUp = 2, - effectStrength = 3.0, startRadius = 0.25, shockWidth = -0.50, - effectType = "airShockwave", }, - }, - BuildingGroundShockWave = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - distanceFalloff = 0.5, noiseStrength = 0.5, noiseScaleSpace = 0.8, - lifeTime = 25, decay = 25, rampUp = 15, - effectStrength = 1.5, --needed for shockwaves - shockWidth = 3, refractiveIndex = -1.2, startRadius = 0.24, - effectType = 'groundShockwave'}, - }, - BuildingGroundShockWaveXL = { - distortionType = 'point', -- or cone or beam - alwaysVisible = false, - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 200, - distanceFalloff = 0.5, noiseStrength = 0.5, noiseScaleSpace = 0.8, - lifeTime = 25, decay = 25, rampUp = 15, - effectStrength = 1.5, --needed for shockwaves - shockWidth = 3, refractiveIndex = -1.2, startRadius = 0.24, - effectType = 'groundShockwave'}, - }, - BuildingExploEnergy = { - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 2, noiseScaleSpace = 0.95, distanceFalloff = 1.5, - onlyModelMap = 0, startRadius = 0.3, - lifeTime = 20, rampUp = 7, decay = 13, effectType = 0, - }, - }, - - MuzzleShockWaveXS = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.2, noiseStrength = 0.3, onlyModelMap = 0, - lifeTime = 9, refractiveIndex = 1.03, decay = 5, rampUp = 2, - effectStrength = 1.5, startRadius = 0.2, shockWidth = -0.80, - effectType = "airShockwave", }, - - }, - MuzzleShockWave = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.2, noiseStrength = 0.3, onlyModelMap = 1, - lifeTime = 13, refractiveIndex = 1.03, decay = 5, rampUp = 2, - effectStrength = 2.2, startRadius = 0.2, shockWidth = -0.40, - effectType = "airShockwave", }, - - }, - MuzzleShockWaveXL = { - distortionType = 'point', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.1, noiseStrength = 0.2, onlyModelMap = 1, - lifeTime = 16, refractiveIndex = 1.02, decay = 5, rampUp = 2, - effectStrength = 3.0, startRadius = 0.3, shockWidth = -0.45, - effectType = "airShockwave", }, - - }, - - - AirShockWaveBeam = { - distortionType = 'beam', -- or cone or beam - distortionConfig = { posx = 0, posy = 0, posz = 0, radius = 150, - noiseScaleSpace = 0.5, noiseStrength = 1.0, - lifeTime = 15, refractiveIndex = 1.05, - --windAffected = 0.5, riseRate = 1, - effectStrength = 1.0, --needed for irshockwaves - effectType = 'airShockwave', }, - - }, - - TorpedoProjectile = { - distortionType = 'cone', -- or cone or beam - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 300, - dirx = 1, diry = 0, dirz = 1, theta = 0.10, -- cone distortions only, specify direction and half-angle in radians - noiseStrength = 2, noiseScaleSpace = 0.90, distanceFalloff = 0.9, onlyModelMap = 0, - lifeTime = 0, sustain = 1, effectType = 0, - }, - }, - - FlameProjectile = { - distortionType = 'point', -- or cone or beam - fraction = 3, -- only spawn every nth distortion - distortionConfig = { - posx = 0, posy = 15, posz = 0, radius = 25, - noiseStrength = 8, noiseScaleSpace = -0.30, distanceFalloff = 0.9, onlyModelMap = 0, - windAffected = 0.2, riseRate = -0.5, - lifeTime = 29, rampUp = 15, decay = 10, effectType = 0, - }, - }, - FlameProjectileXL = { - distortionType = 'point', -- or cone or beam - fraction = 2, -- only spawn every nth distortion - distortionConfig = { - posx = 0, posy = 45, posz = 0, radius = 25, - noiseStrength = 4, noiseScaleSpace = -0.45, distanceFalloff = 1.8, onlyModelMap = 0, - windAffected = 0.1, riseRate = -0.5, - lifeTime = 40, rampUp = 30, decay = 30, effectType = 0, - }, - }, - - ExplosionDistort = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 2, noiseScaleSpace = 0.95, distanceFalloff = 1.5, - onlyModelMap = 0, startRadius = 0.3, - lifeTime = 20, rampUp = 7, decay = 13, effectType = 0, - }, - }, - - ExplosionHeatXS = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 1, noiseScaleSpace = 0.75, distanceFalloff = 0.5, onlyModelMap = 0, - lifeTime = 30, rampUp = 15, decay = 20, effectType = 0, - }, - }, - ExplosionHeat = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 1, noiseScaleSpace = 0.75, distanceFalloff = 0.5, - startRadius = 0.3, onlyModelMap = 0, - lifeTime = 60, rampUp = 30, decay = 30, effectType = 0, - }, - }, - ExplosionHeatNuke = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 75, noiseScaleSpace = 0.034, distanceFalloff = 0.5, onlyModelMap = 0, - windAffected = -1, riseRate = 0.3, - lifeTime = 12, rampUp = 2, decay = 10, effectType = 0, - }, - }, - ExplosionRadiationNuke = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 20, noiseScaleSpace = 0.1, distanceFalloff = 0.5, onlyModelMap = 0, - windAffected = -1, riseRate = -0.5, - lifeTime = 200, rampUp = 100, decay = 100, effectType = 0, - }, - }, - ExplosionRadiationDgun = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - fraction = 6, - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 6, noiseScaleSpace = 0.55, distanceFalloff = 1.2, onlyModelMap = 1, - windAffected = -1, riseRate = -0.5, - lifeTime = 50, rampUp = 20, decay = 25, effectType = 0, - }, - }, - - JunoHeat = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 1, noiseScaleSpace = 0.75, distanceFalloff = 0.5, onlyModelMap = 0, - lifeTime = 60, rampUp = 30, decay = 30, effectType = 7, - }, - }, - - ProjectileDgun = { -- spawned on explosions - distortionType = 'point', -- or cone or beam - yOffset = 0, -- Y offsets are only ever used for explosions! - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 10, - noiseStrength = 20, noiseScaleSpace = -0.1, distanceFalloff = 0.5, onlyModelMap = 0, - windAffected = -1, riseRate = 0, - --magnificationRate = 8.0, - lifeTime = 75, rampUp = 50, decay = 25, effectType = 0, - }, - }, - - MuzzleFlash = { -- spawned on projectilecreated - distortionType = 'point', -- or cone or beam - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 150, - lifeTime = 6, sustain = 0.0035, effectType = 0, - }, - }, -} - - -local SizeRadius = { - Quaco = 2.5, - Zetto = 5, - Atto = 10, - Femto = 16, - KorgLaser = 19, - Pico = 26, - Nano = 34, - Micro = 44, - Tiniest = 56, - Tiny = 72, - Smallest = 90, - Smaller = 115, - Small = 140, - Smallish = 165, - SmallMedium = 190, - Medium = 220, - Mediumer = 260, - MediumLarge = 300, - Large = 400, - Juno = 450, - Larger = 500, - Largest = 650, - Mega = 800, - MegaXL = 1000, - Armnuke = 1280, - MegaXXL = 1500, - Cornuke = 1920, - Giga = 2000, - Tera = 3500, - Planetary = 5000, -} - - -local globalDamageMult = Spring.GetModOptions().multiplier_weapondamage or 1 - -local function GetClosestSizeClass(desiredsize) - local delta = math.huge - local best = nil - for classname, size in pairs(SizeRadius) do - if math.abs(size-desiredsize) < delta then - delta = math.abs(size-desiredsize) - best = classname - end - end - return best, SizeRadius[best] -end - -local lifeTimes = {Fast = 5, Quick = 10, Moderate = 30, Long = 90, Glacial = 270} - -local distortionClasses = {} - -local function deepcopy(orig) - local orig_type = type(orig) - local copy - if orig_type == 'table' then - copy = {} - for orig_key, orig_value in next, orig, nil do - copy[deepcopy(orig_key)] = deepcopy(orig_value) - end - --setmetatable(copy, deepcopy(getmetatable(orig))) - else -- number, string, boolean, etc - copy = orig - end - return copy -end -local usedclasses = 0 -local function GetDistortionClass(baseClassname, sizekey, additionaloverrides) - local distortionClassKey = baseClassname .. (sizekey or "") - if additionaloverrides and type(additionaloverrides) == 'table' then - for k,v in pairs(additionaloverrides) do - distortionClassKey = distortionClassKey .. "_" .. tostring(k) .. "=" .. tostring(v) - end - end - - if distortionClasses[distortionClassKey] then - return distortionClasses[distortionClassKey] - else - distortionClasses[distortionClassKey] = deepcopy(BaseClasses[baseClassname]) - distortionClasses[distortionClassKey].distortionClassName = distortionClassKey - usedclasses = usedclasses + 1 - local distortionConfig = distortionClasses[distortionClassKey].distortionConfig - if sizekey then - distortionConfig.radius = SizeRadius[sizekey] - end - - if additionaloverrides then - for k,v in pairs(additionaloverrides) do - distortionConfig[k] = v - end - end - end - return distortionClasses[distortionClassKey] -end - --------------------------------------------------------------------------------- - -local gibDistortion = { - distortionType = 'point', -- or cone or beam - pieceName = nil, -- optional - distortionConfig = { - posx = 0, posy = 0, posz = 0, radius = 16, - lifeTime = 100, decay = 100, effectType = 0 - }, -} - --------------------------------------------------------------------------------- - -local muzzleFlashDistortions = {} -local explosionDistortions = {} -local projectileDefDistortions = { - ['default'] = { - distortionType = 'point', - distortionConfig = { posx = 0, posy = 16, posz = 0, radius = 420, - lifeTime = 50, sustain = 20, effectType = 0}, - } -} - ------------------------------------ - -local function AssignDistortionsToAllWeapons() - for weaponID=1, #WeaponDefs do - local weaponDef = WeaponDefs[weaponID] - local damage = 100 - for cat=0, #weaponDef.damages do - if Game.armorTypes[cat] and Game.armorTypes[cat] == 'default' then - damage = weaponDef.damages[cat] - break - end - end - - -- correct damage multiplier modoption to more sane value - damage = (damage / globalDamageMult) + ((damage * (globalDamageMult-1))*0.25) - - local radius = ((weaponDef.damageAreaOfEffect*2) + (weaponDef.damageAreaOfEffect * weaponDef.edgeEffectiveness * 1.35)) - local orgMult = math.max(0.1, math.min(damage/1600, 0.6)) + (radius/2800) - local life = 8 + (5*(radius/2000)+(orgMult * 5)) - radius = ((orgMult * 75) + (radius * 2.4)) * 0.33 - - local r, g, b = 1, 0.8, 0.45 - local weaponVisuals = weaponDef.visuals - if weaponVisuals ~= nil and weaponVisuals.colorR ~= nil then - r = weaponVisuals.colorR - g = weaponVisuals.colorG - b = weaponVisuals.colorB - end - local muzzleFlash = true - local explosionDistortion = true - local sizeclass = GetClosestSizeClass(radius) - local t = {} - local aa = string.find(weaponDef.cegTag, 'aa') - if aa then - r, g, b = 1, 0.5, 0.6 - t.color2r, t.color2g, t.color2b = 1, 0.5, 0.6 - end - if weaponDef.paralyzer then - r, g, b = 0.5, 0.5, 1 - t.color2r, t.color2g, t.color2b = 0.25, 0.25, 1 - end - local scavenger = string.find(weaponDef.name, '_scav') - if scavenger then - r, g, b = 0.96, 0.3, 1 - t.color2r, t.color2g, t.color2b = 0.96, 0.3, 1 - end - t.r, t.g, t.b = r, g, b - - -- if string.find(weaponDef.name, 'juno') then - -- radius = 140 - -- orgMult = 1 - -- r, g, b = 0.45, 1, 0.45 - -- end - - if weaponDef.type == 'BeamLaser' then - muzzleFlash = false - - - if not weaponDef.paralyzer then - t.r, t.g, t.b = math.min(1, r+0.3), math.min(1, g+0.3), math.min(1, b+0.3) - t.color2r, t.color2g, t.color2b = r, g, b - end - - radius = (3.5 * (weaponDef.size * weaponDef.size * weaponDef.size)) + (5 * radius * orgMult) - t.a = (orgMult * 0.1) / (0.2 + weaponDef.beamtime) - --projectileDefDistortions[weaponID].yOffset = 64 - - if weaponDef.paralyzer then - radius = radius * 0.5 - end - sizeclass = GetClosestSizeClass(radius) - projectileDefDistortions[weaponID] = GetDistortionClass("LaserProjectile", sizeclass, t) - - if not weaponDef.paralyzer then - radius = ((orgMult * 2500) + radius) * 0.2 - sizeclass = GetClosestSizeClass(radius) - end - - elseif weaponDef.type == 'LaserCannon' then - radius = (4 * (weaponDef.size * weaponDef.size * weaponDef.size)) + (3 * radius * orgMult) - t.a = (orgMult * 0.1) + weaponDef.duration - - sizeclass = GetClosestSizeClass(radius) - projectileDefDistortions[weaponID] = GetDistortionClass("CannonProjectile", sizeclass, t) - - elseif weaponDef.type == 'DistortionningCannon' then - if not scavenger then - t.r, t.g, t.b = 0.2, 0.45, 1 - end - t.a = 0.13 + (orgMult * 0.5) - sizeclass = GetClosestSizeClass(33 + (radius*2.5)) - projectileDefDistortions[weaponID] = GetDistortionClass("LaserProjectile", sizeclass, t) - - elseif weaponDef.type == 'MissileLauncher'then - t.a = orgMult * 0.33 - projectileDefDistortions[weaponID] = GetDistortionClass("MissileProjectile", sizeclass, t) - - elseif weaponDef.type == 'StarburstLauncher' then - t.a = orgMult * 0.44 - projectileDefDistortions[weaponID] = GetDistortionClass("MissileProjectile", sizeclass, t) - sizeclass = GetClosestSizeClass(radius) - radius = ((orgMult * 75) + (radius * 4)) * 0.4 - life = 8 + (5*(radius/2000)+(orgMult * 5)) - - elseif weaponDef.type == 'Cannon' then - t.a = orgMult*0.17 - radius = (radius + (weaponDef.size * 35)) * 0.44 - sizeclass = GetClosestSizeClass(radius) - projectileDefDistortions[weaponID] = GetDistortionClass("CannonProjectile", sizeclass, t) - radius = ((weaponDef.damageAreaOfEffect*2) + (weaponDef.damageAreaOfEffect * weaponDef.edgeEffectiveness * 1.35)) - - elseif weaponDef.type == 'DGun' then - muzzleFlash = true --doesnt work - sizeclass = "Medium" - t.a = orgMult*0.66 - projectileDefDistortions[weaponID] = GetDistortionClass("CannonProjectile", sizeclass, t) - projectileDefDistortions[weaponID].yOffset = 32 - - elseif weaponDef.type == 'TorpedoLauncher' then - sizeclass = "Small" - projectileDefDistortions[weaponID] = GetDistortionClass("TorpedoProjectile", sizeclass, t) - - elseif weaponDef.type == 'Shield' then - sizeclass = "Large" - projectileDefDistortions[weaponID] = GetDistortionClass("CannonProjectile", sizeclass, t) - - -- elseif weaponDef.type == 'AircraftBomb' then - -- t.a = life * 1.8 - -- projectileDefDistortions[weaponID] = GetDistortionClass("MissileProjectile", "Warm", sizeclass, t) - - elseif weaponDef.type == 'Flame' then - --sizeclass = "Small" - sizeclass = GetClosestSizeClass(radius*3) - t.a = orgMult*0.17 * 2 - projectileDefDistortions[weaponID] = GetDistortionClass("FlameProjectile", sizeclass, t) - end - - if muzzleFlash then - if aa then - t.r, t.g, t.b = 1, 0.7, 0.85 - end - if scavenger then - t.r, t.g, t.b = 0.99, 0.9, 1 - end - t.a = orgMult*1.15 - t.colortime = 2 - muzzleFlashDistortions[weaponID] = GetDistortionClass("MuzzleFlash", GetClosestSizeClass(radius*0.6), t) - muzzleFlashDistortions[weaponID].yOffset = muzzleFlashDistortions[weaponID].distortionConfig.radius / 5 - end - - if explosionDistortion then - if aa then - t.r, t.g, t.b = 1, 0.7, 0.85 - end - if scavenger then - t.r, t.g, t.b = 0.99, 0.9, 1 - end - t.lifeTime = life - t.colortime = 25 / life --t.colortime = life * 0.17 - t.a = orgMult - - if weaponDef.type == 'DGun' then - t.a = orgMult*0.17 - elseif weaponDef.type == 'Flame' then - t.a = orgMult*0.17 - elseif weaponDef.type == 'BeamLaser' then - local mult = 0.85 - t.color2r, t.color2g, t.color2b = r*mult, g*mult, b*mult - t.colortime = 2 - t.lifeTime = life * 0.5 - t.a = 0.02 + ((orgMult*0.055) / weaponDef.beamtime) + (weaponDef.range*0.000035) - radius = 1.2 * ((weaponDef.damageAreaOfEffect*4) + (weaponDef.damageAreaOfEffect * weaponDef.edgeEffectiveness * 1.1)) + (weaponDef.range*0.08) - sizeclass = GetClosestSizeClass(radius) - elseif weaponDef.type == 'DistortionningCannon' then - t.a = orgMult*1.25 - t.color2r = 0.1 - t.color2g = 0.3 - t.color2b = 0.9 - sizeclass = GetClosestSizeClass(radius*1.2) - else - if weaponDef.type == 'AircraftBomb' then - if weaponDef.paralyzer then - t.r = t.r * 1.7 -- make more red - t.g = t.g * 0.4 -- make more red - t.b = t.b * 0.4 -- make more red - life = life * 1.1 -- too high and it will flicker somehow! - orgMult = orgMult * 0.15 - t.colortime = 31 / life - else - t.r = t.r * 1.7 -- make more red - t.g = t.g * 0.4 -- make more red - t.b = t.b * 0.4 -- make more red - life = life * 1.2 - t.colortime = 19 / life - end - t.lifeTime = life - - end - radius = ((weaponDef.damageAreaOfEffect*1.9) + (weaponDef.damageAreaOfEffect * weaponDef.edgeEffectiveness * 1.35)) - if string.find(weaponDef.name, 'juno') then - radius = 675 - orgMult = 0.25 - t.r = 1.05 - t.g = 1.3 - t.b = 0.6 - t.color2r = 0.32 - t.color2g = 0.5 - t.color2b = 0.12 - t.colortime = 200 - t.lifeTime = 500 - end - if weaponDef.customParams.unitexplosion then - radius = radius * 1.25 - -- make more white - t.r = (1.7 + t.r) / 2.7 - t.g = (1.7 + t.g) / 2.7 - t.b = (1.7 + t.b) / 2.7 - -- t.r = 3 - -- t.g = 3 - -- t.b = 3 - -- t.color2r = (1.5 + t.color2r) / 2.3 - -- t.color2g = (1.5 + t.color2g) / 2.3 - -- t.color2b = (1.5 + t.color2b) / 2.3 - t.a = orgMult*2.8 - t.lifeTime = life * 1.15 - --t.colortime = 8 - else - -- make more white - t.r = (1.4 + t.r) / 2.3 - t.g = (1.4 + t.g) / 2.3 - t.b = (1.4 + t.b) / 2.3 - t.a = orgMult*1.6 - end - local mult = 0.55 - t.color2r, t.color2g, t.color2b = r*mult, g*mult, b*mult - sizeclass = GetClosestSizeClass(radius) - end - if not weaponDef.customParams.noexplosiondistortion then - explosionDistortions[weaponID] = GetDistortionClass("Explosion", sizeclass, t) - explosionDistortions[weaponID].yOffset = explosionDistortions[weaponID].distortionConfig.radius / 5 - end - end - end - Spring.Echo(Spring.GetGameFrame(),"DLGL4 weapons conf using",usedclasses,"distortion types") -end --- AssignDistortionsToAllWeapons() -- disabled because entire thing above here needs re-configuring - - ------------------Manual Overrides-------------------- -local explosionDistortionsNames = {} -local muzzleFlashDistortionsNames = {} -local projectileDefDistortionsNames = {} - - -projectileDefDistortionsNames["armcom_disintegrator"] = - --GetDistortionClass("ProjectileDgun", "Micro") - GetDistortionClass("AirShockWaveDgun", "Micro") - -projectileDefDistortionsNames["corjugg_juggernaut_fire"] = - GetDistortionClass("AirShockWaveDgun", "Nano", { - lifeTime = 40, - }) - -explosionDistortionsNames['corjugg_juggernaut_fire'] = { - --GetDistortionClass("GroundShockWave", "Smaller", { - -- lifeTime = 24, }), - --GetDistortionClass("AirShockWaveDgun", "Smaller"), - GetDistortionClass("ExplosionRadiationDgun", "Micro"), -} - -projectileDefDistortionsNames["cormort_cor_mort"] = - GetDistortionClass("PlasmaTrailProjectile", "Small", { - theta = 0.08, noiseStrength = 5, noiseScaleSpace = 0.29, distanceFalloff = 2.5, - lifeTime = 60, rampUp = 20, decay = 0, effectStrength = 1.5, - radius = 100, startRadius = 0.1, yoffset = 8, - }) -explosionDistortionsNames['cormort_cor_mort'] = { - GetDistortionClass("GroundShockWave", "Pico", { - lifeTime = 18, }), - GetDistortionClass("AirShockWaveXS", "Femto", { - lifeTime = 9, effectStrength = 0.5, }), -} - -projectileDefDistortionsNames["armmav_armmav_weapon"] = - GetDistortionClass("PlasmaTrailProjectile", "Smaller", { - theta = 0.11, noiseStrength = 15, noiseScaleSpace = 0.55, - lifeTime = 60, rampUp = 20, decay = 0, radius = 40, -}) -explosionDistortionsNames['armmav_armmav_weapon'] = { - GetDistortionClass("GroundShockWave", "Micro", { - lifeTime = 19, effectStrength = 1.0, - }), -} - -explosionDistortionsNames['armstil_stiletto_bomb'] = { - -- Electric Ground Decals - not perfect yet - -- GetDistortionClass("GroundShockWave", "Small", { - -- noiseStrength = 125.0, noiseScaleSpace = 0.13, distanceFalloff = 0.9, onlyModelMap = 1, - -- lifeTime = 190, effectStrength = 3, - -- windAffected = -1, riseRate = 6, - -- rampUp = 50, decay = 0, shockWidth = 10, - -- }), - - -- Heat Radiation - -- GetDistortionClass("ExplosionHeat", "Smallish", { - -- noiseStrength = -1.5, noiseScaleSpace = 0.25, distanceFalloff = -0.05, - -- --effectStrength = 1.0, -- don't use, doesn't fade out correct - -- windAffected = -1, riseRate = 1, - -- lifeTime = 140, rampUp = 50, decay = 90, onlyModelMap = 1, - -- }), - - -- Noised/electric Shockwave - GetDistortionClass("GroundShockWave", "SmallMedium", { - noiseStrength = 6.0, noiseScaleSpace = 0.32, distanceFalloff = 0.1, onlyModelMap = 0, - lifeTime = 59, effectStrength = 6, - windAffected = -1, riseRate = -1, - rampUp = 70, decay = 3, shockWidth = 1.05, - }), - GetDistortionClass("AirShockWaveEMP", "Small", { - }) - - -- - -- GetDistortionClass("ExplosionHeat", "SmallMedium", { - -- noiseStrength = -1.5, noiseScaleSpace = 0.95, distanceFalloff = -0.05, - -- effectStrength = 1.0, -- don't use, doesn't fade out correct - -- windAffected = -1, riseRate = 9, - -- lifeTime = 200, rampUp = 50, decay = 50, onlyModelMap = 1, - -- }), - -} - -explosionDistortionsNames['raptor_air_bomber_acid_t2_v1_acidbomb'] = { - GetDistortionClass("GroundShockWave", "Smallish", { - noiseStrength = 15.0, noiseScaleSpace = 0.20, distanceFalloff = 0.9, onlyModelMap = 1, - lifeTime = 190, effectStrength = 2, - windAffected = -1, riseRate = 6, - rampUp = 20, decay = 15, shockWidth = 10, - }), -} - -explosionDistortionsNames['armjuno_juno_pulse'] = { - -- GetDistortionClass("JunoHeat", "Juno", { - -- pos2x = 0, pos2y = 0, pos2z = 0, - -- noiseStrength = 6.5, noiseScaleSpace = 0.5, distanceFalloff = -0.1, - -- lifeTime = 900, rampUp = 0, decay = 0, onlyModelMap = 0, - -- }), - GetDistortionClass("GroundShockWave", "Larger", { - noiseStrength = 5.0, noiseScaleSpace = 0.13, distanceFalloff = 0.1, onlyModelMap = 0, - lifeTime = 65, effectStrength = -20, - rampUp = 30, decay = -10, shockWidth = 14, - }), - GetDistortionClass("ExplosionHeat", "Juno", { - noiseStrength = -1.5, noiseScaleSpace = 0.95, distanceFalloff = -0.05, - effectStrength = 3.0, -- don't use, doesn't fade out correct - windAffected = -1, riseRate = 9, - lifeTime = 900, rampUp = 100, decay = 150, onlyModelMap = 1, - }), - -} - --- corlevlr -projectileDefDistortionsNames["corlevlr_corlevlr_weapon"] = - GetDistortionClass("PlasmaTrailProjectile", "Smaller", { - theta = 0.11, noiseStrength = 24, noiseScaleSpace = 0.55, - lifeTime = 60, rampUp = 20, decay = 0, radius = 40, yoffset = 8, -}) - -explosionDistortionsNames['corlevlr_corlevlr_weapon'] = { - GetDistortionClass("GroundShockWave", "Tiny", { - lifeTime = 15, effectStrength = 1.0, - }), - GetDistortionClass("AirShockWaveXS", "Micro", { - lifeTime = 14, - }), - GetDistortionClass("ExplosionHeatXS", "Nano"), -} - --- projectileDefDistortionsNames["armpw_emg"] = --- GetDistortionClass("PlasmaTrailProjectile", "Smallest", { --- theta = 0.11,noiseStrength = 4, noiseScaleSpace = 0.55, --- lifeTime = 30, rampUp = 2, decay = 0, radius = 40, yoffset = 5, --- }) - --- projectileDefDistortionsNames["armpw_emg"] = --- GetDistortionClass("CannonProjectile", "Zetto", { --- noiseStrength = 1, noiseScaleSpace = 0.22, --- effectStrength = 0.8, --- lifeTime = 0, rampUp = 0, decay = 0, radius = 3, yoffset = 5, --- }) - - -muzzleFlashDistortionsNames['corlevlr_corlevlr_weapon'] = { - GetDistortionClass("MuzzleShockWave", "Pico") -} - -muzzleFlashDistortionsNames['armguard_plasma'] = { - GetDistortionClass("MuzzleShockWave", "Nano", { - lifeTime = 8, effectStrength = 1.2, - }), -} -muzzleFlashDistortionsNames['armguard_plasma_high'] = { - GetDistortionClass("MuzzleShockWave", "Tiny") -} - -muzzleFlashDistortionsNames['armepoch_mediumplasma'] = { - GetDistortionClass("MuzzleShockWave", "Micro") -} -muzzleFlashDistortionsNames['armepoch_heavyplasma'] = { - GetDistortionClass("MuzzleShockWaveXL", "Tiniest") -} -explosionDistortionsNames['armepoch_heavyplasma'] = { - GetDistortionClass("AirShockWave", "Tiny"), - GetDistortionClass("ExplosionHeat", "Micro"), -} - -muzzleFlashDistortionsNames['corblackhy_heavyplasma'] = { - GetDistortionClass("MuzzleShockWave", "Tiny") -} -explosionDistortionsNames['corblackhy_heavyplasma'] = { - GetDistortionClass("AirShockWave", "Tiny"), - GetDistortionClass("ExplosionHeat", "Micro"), -} - -projectileDefDistortionsNames["cormaw_dmaw"] = - GetDistortionClass("FlameProjectile", "Micro", { - lifeTime = 42, rampUp = 30, - }) - -projectileDefDistortionsNames["corpyro_flamethrower"] = - GetDistortionClass("FlameProjectile", "Micro") - -projectileDefDistortionsNames["cordemon_newdmaw"] = - GetDistortionClass("FlameProjectileXL", "Tiniest") - -projectileDefDistortionsNames["corcrwh_dragonmawh"] = - GetDistortionClass("FlameProjectileXL", "Tiniest", { - noiseStrength = 11, --noiseScaleSpace = -0.20, - lifeTime = 50, rampUp = 15, decay = 70, - }) - -projectileDefDistortionsNames["corfship_dmaw"] = - GetDistortionClass("FlameProjectile", "Tiny") - -projectileDefDistortionsNames["corvipe_vipersabot"] = -GetDistortionClass("PlasmaTrailProjectile", "Smaller", { - theta = 0.07, noiseStrength = 10, noiseScaleSpace = 0.35, - lifeTime = 30, rampUp = 10, decay = 5, radius = 120, - yoffset = 18, -}) -explosionDistortionsNames['corvipe_vipersabot'] = { - GetDistortionClass("GroundShockWaveXS", "Micro", { - startRadius = 0.50, }), - GetDistortionClass("AirShockWaveXS", "Pico", { - lifeTime = 9, effectStrength = 0.8, }), - GetDistortionClass("ExplosionHeatXS", "Nano"), -} - -projectileDefDistortionsNames["armmship_rocket"] = - GetDistortionClass("MissileProjectile", "Medium", { - theta = 0.16, noiseStrength = 5, noiseScaleSpace = 0.35, - windAffected = -1, riseRate = -0.5, - lifeTime = 110, rampUp = 20, decay = 40, radius = 200, yoffset = 4, - }) - - - --- projectileDefDistortionsNames["armblade_vtol_sabot"] = --- GetDistortionClass("MissileProjectile", "Smaller", { --- theta = 0.07, noiseStrength = 3, noiseScaleSpace = 0.35, --- lifeTime = 27, rampUp = 10, decay = 10, radius = 150, --- }) - - - -projectileDefDistortionsNames["corkarg_super_missile"] = - GetDistortionClass("MissileProjectile", "Smaller", { - theta = 0.08, noiseStrength = 4, noiseScaleSpace = 0.37, - lifeTime = 46, rampUp = 4, decay = 15, radius = 130, yoffset = 18, - effectStrength = 1.2, - startRadius = 0.5, onlyModelMap = 1, -}) -explosionDistortionsNames['corkarg_super_missile'] = { - GetDistortionClass("GroundShockWave", "Micro", { - lifeTime = 24, }), - GetDistortionClass("AirShockWaveXS", "Pico", { - lifeTime = 16, effectStrength = 0.5, }), -} - -projectileDefDistortionsNames["corhrk_corhrk_rocket"] = - GetDistortionClass("MissileProjectile", "Smallest", { - theta = 0.19, noiseStrength = 2, noiseScaleSpace = 0.47, - lifeTime = 120, rampUp = 50, decay = 30, radius = 130, yoffset = 10, - effectStrength = 1.3, - startRadius = 0.5, onlyModelMap = 1, -}) - -projectileDefDistortionsNames["corstorm_cor_bot_rocket"] = - GetDistortionClass("MissileProjectile", "Smallest") - -projectileDefDistortionsNames["corban_banisher"] = - GetDistortionClass("MissileProjectile", "Medium") - -projectileDefDistortionsNames["armsubk_armsmart_torpedo"] = - GetDistortionClass("TorpedoProjectile", "SmallMedium") - --- projectileDefDistortionsNames['armmanni_atam'] = --- GetDistortionClass("AirShockWaveBeam", "Small") - -projectileDefDistortionsNames['armmanni_atam'] = - GetDistortionClass("TachyonBeam", "Femto", { - noiseStrength = 1, noiseScaleSpace = 0.03, - windAffected = -0.8, riseRate = -0.2, - }) - -projectileDefDistortionsNames['armanni_ata'] = - GetDistortionClass("TachyonBeam", "Femto", { - noiseStrength = 1.0, noiseScaleSpace = 0.04, - windAffected = -0.9, riseRate = -0.2, - --lifeTime = 0, rampUp = 20, decay = 0, - }) - -projectileDefDistortionsNames['cordoom_atadr'] = - GetDistortionClass("TachyonBeam", "Femto", { - noiseStrength = 1.0, noiseScaleSpace = 0.04, - windAffected = -0.9, riseRate = -0.2, - --lifeTime = 0, rampUp = 20, decay = 0, - }) - -projectileDefDistortionsNames['armbanth_tehlazerofdewm'] = - GetDistortionClass("TachyonBeam", "Femto", { - noiseStrength = 1.5, noiseScaleSpace = 0.025, - windAffected = -0.8, riseRate = -0.2, - }) - -projectileDefDistortionsNames["corhlt_cor_laserh1"] = - GetDistortionClass("LaserBeamHeat", "Atto") - --- Heatrays should all get this class -projectileDefDistortionsNames["corsala_cor_heat_laser"] = - GetDistortionClass("HeatRayHeat", "Atto") - -projectileDefDistortionsNames["corkorg_corkorg_laser"] = - GetDistortionClass("HeatRayHeatXL", "KorgLaser") - -projectileDefDistortionsNames["armspid_spider"] = --doesnt work on lightning cannon - GetDistortionClass("EMPBeam", "Quaco") - -projectileDefDistortionsNames["corbw_bladewing_lyzer"] = --doesnt work on lightning cannon - GetDistortionClass("EMPBeam", "Quaco") - -projectileDefDistortionsNames["armclaw_dclaw"] = --doesnt work on lightning cannon - GetDistortionClass("LightningBeam", "Femto") - --- projectileDefDistortionsNames["armzeus_lightning"] = --doesnt work on lightning cannon --- GetDistortionClass("LightningBeam", "Atto") - --- projectileDefDistortionsNames["armlship_lightning"] = --doesnt work on lightning cannon --- GetDistortionClass("LightningBeam", "Femto") - -projectileDefDistortionsNames["armthor_thunder"] = --doesnt work on lightning cannon - GetDistortionClass("LightningBeam", "Femto") - -muzzleFlashDistortionsNames['armthor_thunder'] = { - GetDistortionClass("MuzzleShockWave", "Micro") -} - -explosionDistortionsNames['armbull_arm_bull'] = { - --GetDistortionClass("GroundShockWave", "Smallest"), - GetDistortionClass("AirShockWaveXS", "Tiny"), - --GetDistortionClass("ExplosionHeatXS", "Nano"), -} - - - --- explosionDistortionsNames['unitDeaths_windboom'] = { --- --GetDistortionClass("GroundShockWave", "Smallest"), --- GetDistortionClass("AirShockWaveXS", "Tiny"), --- GetDistortionClass("ExplosionHeatXS", "Nano"), --- } - -explosionDistortionsNames['armthund_armbomb'] = { - GetDistortionClass("AirShockWave", "Nano", { - lifeTime = 11, effectStrength = 0.4, }), - GetDistortionClass("GroundShockWave", "Tiny", { - lifeTime = 12, }), - GetDistortionClass("ExplosionHeat", "Pico"), -} - -explosionDistortionsNames['armfboy_arm_fatboy_notalaser'] = { - GetDistortionClass("AirShockWave", "Small"), - GetDistortionClass("GroundShockWave", "SmallMedium"), - GetDistortionClass("ExplosionHeat", "Tiniest"), -} - -explosionDistortionsNames['armliche_arm_pidr'] = { - GetDistortionClass("GroundShockWaveNuke", "Larger", { - shockWidth = 8, - }), - -- GetDistortionClass("AirShockWaveNukeBlast", "Mediumer", { - -- lifeTime = 25, effectStrength = 1.2, - -- refractiveIndex = -1.03, }), - GetDistortionClass("AirShockWave", "Medium", { - lifeTime = 15, effectStrength = 16.0, - refractiveIndex = 1.1, }), - GetDistortionClass("ExplosionHeatNuke", "Medium", { - noiseScaleSpace = 0.1, noiseStrength = 9, - lifeTime = 80, decay = 25, rampUp = 50, - }), -} - -explosionDistortionsNames['armsilo_nuclear_missile'] = { - GetDistortionClass("GroundShockWaveNuke", "Giga"), - GetDistortionClass("AirShockWaveNukeBlast", "MegaXXL"), - GetDistortionClass("AirShockWaveNuke", "MegaXL"), - GetDistortionClass("ExplosionHeatNuke", "Larger"), -} - -explosionDistortionsNames['armguardnuke_plasma'] = { - GetDistortionClass("ExplosionHeatNuke", "Larger"), - GetDistortionClass("AirShockWaveNuke", "Armnuke"), - --GetDistortionClass("ExplosionRadiationNuke", "Larger"), --no use yet - GetDistortionClass("GroundShockWaveNuke", "Armnuke"), - --GetDistortionClass("AirShockWaveNukeBlast", "MegaXXL"), - -} -projectileDefDistortionsNames["armguardnuke_plasma"] = - GetDistortionClass("MissileNukeProjectile", "Large") - -explosionDistortionsNames['armguardnuke_plasma_high'] = { - GetDistortionClass("GroundShockWave", "Medium"), - GetDistortionClass("AirShockWaveNuke", "Cornuke"), - GetDistortionClass("ExplosionHeat", "Smallest"), -} - -explosionDistortionsNames['corton_cortron_weapon'] = { - GetDistortionClass("GroundShockWave", "Medium"), - GetDistortionClass("AirShockWave", "Mega"), - GetDistortionClass("ExplosionHeat", "Smallest"), -} - -muzzleFlashDistortionsNames['armstump_arm_lightcannon'] = { - GetDistortionClass("MuzzleShockWaveXS", "Atto", { - - }) -} -explosionDistortionsNames['armstump_arm_lightcannon'] = { - GetDistortionClass("AirShockWaveXS", "Atto", { - lifeTime = 14, refractiveIndex = 1.03, decay = 3, - shockWidth = -0.5, effectStrength = 1.5, - startRadius = 0.3,}), - -- GetDistortionClass("GroundShockWave", "Atto", { - -- shockWidth = 2.5, startRadius = 0.2, - -- }), - -- GetDistortionClass("ExplosionHeat", "Atto"), - --GetDistortionClass("ExplosionDistort", "Atto"), -} - -explosionDistortionsNames['corgol_cor_gol'] = { - GetDistortionClass("AirShockWave", "Small", { - lifeTime = 14, refractiveIndex = 1.03, decay = 3, - shockWidth = -0.5, effectStrength = 1.5, - startRadius = 0.3,}), - GetDistortionClass("GroundShockWave", "Smallish", { - shockWidth = 2.5, startRadius = 0.2, - }), - --GetDistortionClass("ExplosionHeat", "Tiniest"), -} -muzzleFlashDistortionsNames['corgol_cor_gol'] = { - GetDistortionClass("MuzzleShockWave", "Nano", { - lifeTime = 12 - }) -} - -explosionDistortionsNames['corshiva_shiva_gun'] = { - GetDistortionClass("AirShockWave", "Smallish", { - lifeTime = 30, refractiveIndex = 1.1, decay = 3, - shockWidth = 0.5, effectStrength = 3.0, startRadius = 0.3}), - GetDistortionClass("GroundShockWave", "Smallest"), - GetDistortionClass("ExplosionHeat", "Smallest", { - lifeTime = 40, decay = 10, rampup = 5, startRadius = 50}), -} - -explosionDistortionsNames['corcat_exp_heavyrocket'] = { - GetDistortionClass("AirShockWave", "Smallest", { - lifeTime = 8, effectStrength = 1.0, - shockWidth = 0.50, - }), - GetDistortionClass("GroundShockWave", "Smaller", { - lifeTime = 10, shockWidth = 1.5, startRadius = 0.2,}), - -- GetDistortionClass("ExplosionHeat", "Micro", { - -- lifeTime = 50, - -- }), -} - -muzzleFlashDistortionsNames['armmav_armmav_weapon'] = { - GetDistortionClass("MuzzleShockWave", "Atto") -} -muzzleFlashDistortionsNames['corint_lrpc'] = { - GetDistortionClass("MuzzleShockWaveXL", "Tiny") -} -explosionDistortionsNames['corint_lrpc'] = { - GetDistortionClass("AirShockWave", "Smaller", { - lifeTime = 11, refractiveIndex = -1.5, decay = 4, - shockWidth = -0.5, effectStrength = 1.0, - startRadius = 0.3}), - GetDistortionClass("GroundShockWave", "Smallest"), - GetDistortionClass("ExplosionHeat", "Smallest", { - lifeTime = 80, decay = 40, rampup = 5}), -} -muzzleFlashDistortionsNames['armbrtha_lrpc'] = { - GetDistortionClass("MuzzleShockWaveXL", "Tiny") -} -explosionDistortionsNames['armbrtha_lrpc'] = { - GetDistortionClass("AirShockWave", "Smaller", { - lifeTime = 11, refractiveIndex = -1.5, decay = 4, - shockWidth = -0.5, effectStrength = 1.0, - startRadius = 0.3}), - GetDistortionClass("GroundShockWave", "Smallest"), - GetDistortionClass("ExplosionHeat", "Smallest", { - lifeTime = 80, decay = 40, rampup = 5}), -} - -muzzleFlashDistortionsNames['corbuzz_rflrpc'] = { - GetDistortionClass("MuzzleShockWaveXL", "Tiny", { - lifeTime = 18, effectStrength = 4.0, startRadius = 0.35, - decay = 7, rampUp = 1, - }) -} -projectileDefDistortionsNames["corbuzz_rflrpc"] = -GetDistortionClass("PlasmaTrailProjectile", "Smallish", { - theta = 0.09, noiseStrength = 15, noiseScaleSpace = 0.12, radius = 380, - distanceFalloff = 2.2, effectStrength = 3.8, -}) -explosionDistortionsNames['corbuzz_rflrpc'] = { - GetDistortionClass("AirShockWave", "Smaller", { - lifeTime = 9, refractiveIndex = -1.5, decay = 4, - shockWidth = -0.5, effectStrength = 1.0, - startRadius = 0.3}), - GetDistortionClass("GroundShockWave", "Smallest"), - GetDistortionClass("ExplosionHeat", "Smallest", { - lifeTime = 80, decay = 40, rampup = 5}), -} - -muzzleFlashDistortionsNames['armvulc_rflrpc'] = { - GetDistortionClass("MuzzleShockWaveXL", "Tiniest", { - lifeTime = 14, effectStrength = 4.0, startRadius = 0.30, - decay = 8, rampUp = 3, shockWidth = -0.55, - }) -} -projectileDefDistortionsNames["armvulc_rflrpc"] = -GetDistortionClass("PlasmaTrailProjectile", "Smallish", { - theta = 0.09, noiseStrength = 5, noiseScaleSpace = 0.4, radius = 380, - distanceFalloff = 0.9, -}) -explosionDistortionsNames['armvulc_rflrpc'] = { - GetDistortionClass("AirShockWave", "Smaller", { - lifeTime = 9, refractiveIndex = -1.5, decay = 4, - shockWidth = -0.5, effectStrength = 1.0, - startRadius = 0.3}), - GetDistortionClass("GroundShockWave", "Smallest"), - GetDistortionClass("ExplosionHeat", "Smallest", { - lifeTime = 80, decay = 40, rampup = 5}), -} - -muzzleFlashDistortionsNames['armbull_arm_bull'] = { - GetDistortionClass("MuzzleShockWave", "Femto") -} - - --- convert weaponname -> weaponDefID -for name, distortionList in pairs(explosionDistortionsNames) do - if WeaponDefNames[name] then - explosionDistortions[WeaponDefNames[name].id] = distortionList - end -end -explosionDistortionsNames = nil --- convert weaponname -> weaponDefID -for name, distortionList in pairs(muzzleFlashDistortionsNames) do - if WeaponDefNames[name] then - muzzleFlashDistortions[WeaponDefNames[name].id] = distortionList - end -end -muzzleFlashDistortionsNames = nil --- convert weaponname -> weaponDefID -for name, params in pairs(projectileDefDistortionsNames) do - if WeaponDefNames[name] then - projectileDefDistortions[WeaponDefNames[name].id] = params - end -end -projectileDefDistortionsNames = nil - - --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- --- Projectile Collection -return {muzzleFlashDistortions = muzzleFlashDistortions, projectileDefDistortions = projectileDefDistortions, explosionDistortions = explosionDistortions, gibDistortion = gibDistortion} diff --git a/luaui/configs/buildmenu_sorting.lua b/luaui/configs/buildmenu_sorting.lua index b68e8964d77..5062b76888c 100644 --- a/luaui/configs/buildmenu_sorting.lua +++ b/luaui/configs/buildmenu_sorting.lua @@ -98,6 +98,8 @@ local unitOrderTable = { ['corvrad'] = 004210, ['armjam'] = 004220, ['coreter'] = 004230, + ['legavrad'] = 004221, + ['legavjam'] = 004222, ['armsjam'] = 004250, ['corsjam'] = 004260, @@ -273,12 +275,14 @@ local unitOrderTable = { --T3 LAND ATTACK ['armmar'] = 007000, + ['legjav'] = 007005, ['corcat'] = 007010, ['armraz'] = 007020, ['corkarg'] = 007030, ['armvang'] = 007040, ['corshiva'] = 007050, ['legkeres'] = 007051, + ['legerailtank'] = 007052, ['legpede'] = 007055, ['armthor'] = 007060, ['leegmech'] = 007065, @@ -322,6 +326,7 @@ local unitOrderTable = { ['armyork'] = 008200, ['corsent'] = 008210, + ['legvflak'] = 008220, ['armah'] = 008300, ['corah'] = 008310, @@ -395,6 +400,7 @@ local unitOrderTable = { ['armlance'] = 009900, ['cortitan'] = 009910, + ['legatorpbomber'] = 009915, ['armsubk'] = 009920, ['corshark'] = 009930, ['armserp'] = 009940, @@ -496,8 +502,10 @@ local unitOrderTable = { ['armfus'] = 101525, ['armckfus'] = 101550, ['corfus'] = 101600, + ['legfus'] = 101650, ['armafus'] = 101700, ['corafus'] = 101750, + ['legafus'] = 101780, --ECO NRG STORAGE ['armestor'] = 101800, @@ -762,8 +770,6 @@ local unitOrderTable = { ['corenaa'] = 255400, --WATER DEFENSES NAVAL - ['armptl'] = 260100, - ['corptl'] = 260200, ['armtl'] = 260300, ['cortl'] = 260400, ['armatl'] = 260500, diff --git a/luaui/configs/gridmenu_config.lua b/luaui/configs/gridmenu_config.lua index 450107da548..7b37f395344 100644 --- a/luaui/configs/gridmenu_config.lua +++ b/luaui/configs/gridmenu_config.lua @@ -11,10 +11,10 @@ local homeGridPos = { } local unitCategories = {} -local BUILDCAT_ECONOMY = "Economy" -local BUILDCAT_COMBAT = "Combat" -local BUILDCAT_UTILITY = "Utility" -local BUILDCAT_PRODUCTION = "Build" +local BUILDCAT_ECONOMY = Spring.I18N("ui.buildMenu.category_econ") +local BUILDCAT_COMBAT = Spring.I18N("ui.buildMenu.category_combat") +local BUILDCAT_UTILITY = Spring.I18N("ui.buildMenu.category_utility") +local BUILDCAT_PRODUCTION = Spring.I18N("ui.buildMenu.category_production") local categories = { BUILDCAT_ECONOMY, diff --git a/luaui/configs/gridmenu_layouts.lua b/luaui/configs/gridmenu_layouts.lua index 4bfd3a036a9..bb5f8507b22 100644 --- a/luaui/configs/gridmenu_layouts.lua +++ b/luaui/configs/gridmenu_layouts.lua @@ -64,8 +64,8 @@ local labGrids = { }, legavp = { "legacv", "legmrv", "legaskirmtank", "legamcluster", -- T2 con, Quickshot, scorpion, cleaver - "corvrad", "coreter", "legaheattank", "leginf", -- radar, jammer, goli, inferno - "legfloat", "legmed", "corsent", "legavroc", -- the new and improved triton, medusa, AA, boreas + "legavrad", "legavjam", "legaheattank", "leginf", -- radar, jammer, goli, inferno + "legfloat", "legmed", "legvflak", "legavroc", -- the new and improved triton, medusa, AA, boreas }, -- T1 air armap = { @@ -93,9 +93,9 @@ local labGrids = { "corcrw","corcrwh", -- krow }, legaap = { - "legaca","legionnaire","legvenator","", --T2 con, defensive fig, interceptor - "legmineb","legnap","legphoenix","cortitan", --minebomber, napalmbomber, 'heavy bomber', torpedo - "legfort","legstronghold","legwhisper", "" --knockoff krow, (well armed)transport, radar + "legaca", "legionnaire", "legvenator","", --T2 con, defensive fig, interceptor + "legmineb", "legnap", "legphoenix", "legatorpbomber", --minebomber, napalmbomber, 'heavy bomber', torpedo + "legfort", "legstronghold", "legwhisper", "" --knockoff krow, (well armed)transport, radar }, -- seaplanes armplat = { @@ -143,12 +143,12 @@ local labGrids = { "corseal", "corparrow", "", "", "", "corcrash", "coraak", }, - + legamsub = { "legotter", "legdecom", "legamphtank", "", -- amphibious con, decoy com, t1 amphibious tank, idk "", "legfloat", "", "", -- idk, t2 floating tank, idk, idk "", "corcrash", "coraak", "", -- idk, t1 aa bot, t2 aa bot, idk - }, + }, -- hover labs armhp = { "armch", "", "armsh", "", @@ -178,7 +178,7 @@ local labGrids = { "legner", "legmh", "legcar", "", "", "", "legah", }, - + legfhp = { "legch", "", "legsh", "", "legner", "legmh", "corhal", "", @@ -189,15 +189,14 @@ local labGrids = { "armmar", "armraz", "armvang", "armthor", "armbanth", "armlun" }, - corgant = { "corcat", "corkarg", "corshiva", "corkorg", "corjugg", "corsok" }, leggant = { - "corcat", "corkarg", "corshiva", "corkorg", - "corjugg", "corsok", "legpede", "leegmech", - "legkeres","","" + "corcat", "corkarg", "legjav", "corkorg", --catapult, kargneth, javelin, juggernaut + "corjugg", "corsok", "legpede", "leegmech", --behemoth, hovertank, mukade, praetorian + "legkeres","legerailtank","" -- keres, daedalus } } local unitGrids = { @@ -395,9 +394,9 @@ local unitGrids = { { { "armllt", "armbeamer", "armhlt", "armclaw", }, -- LLT, beamer, HLT, lightning turret { "armrl", "armferret", "", "armfrt",}, -- basic AA, ferret, chainsaw, floating AA - { "armdl", "armguard", "armptl", "armfrock"}, -- coastal torp launcher, guardian, offshore torp launcher, floating HLT + { "armdl", "armguard", "armtl", "armfrock"}, -- coastal torp launcher, guardian, offshore torp launcher, floating HLT }, - { + { { "armrad", "armeyes", "armdrag", "armjamt", }, -- radar, perimeter camera, dragon's teeth, jammer { "armfrad", "armfdrag", }, -- floating radar, shark's teeth { "armjuno", "armmine1", "armmine2", "armmine3", },-- juno, Lmine, Mmine, Hmine @@ -417,9 +416,9 @@ local unitGrids = { { { "armpb", "armbeamer", "armhlt", "armclaw", }, -- pitbull, beamer, HLT, lightning turret { "armrl", "armferret", "armcir", "armfrt",}, -- basic AA, ferret, chainsaw, floating AA - { "armdl", "armamb", "armptl", }, -- coastal torp launcher, rattlesnake, offshore torp launcher, + { "armdl", "armamb", "armtl", }, -- coastal torp launcher, rattlesnake, offshore torp launcher, }, - { + { { "armrad", "armeyes", "armdrag", "armjamt", }, -- radar, perimeter camera, dragon's teeth, jammer { "armfrad", "armfdrag", }, -- floating radar, shark's teeth { "armjuno", "armmine1", "armmine2", "armmine3", },-- juno, Lmine, Mmine, Hmine @@ -615,7 +614,7 @@ local unitGrids = { { { "corllt", "corhllt", "corhlt", "cormaw", }, -- LLT, Double LLT, HLT, flame turret { "corrl", "cormadsam", "corerad", }, -- basic AA, SAM, eradicator - { "cordl", "corpun", "corptl", "", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT + { "cordl", "corpun", "cortl", "", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT }, { { "corrad", "coreyes", "cordrag", "corjamt", }, -- radar, perimeter camera, dragon's teeth, jammer @@ -637,7 +636,7 @@ local unitGrids = { { { "corllt", "corhllt", "corhlt", "cormaw", }, -- LLT, Double LLT, HLT, flame turret { "corrl", "cormadsam", "corerad", }, -- basic AA, SAM, eradicator - { "cordl", "corpun", "corptl", "", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT + { "cordl", "corpun", "cortl", "", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT }, { { "corrad", "coreyes", "cordrag", "corjamt", }, -- radar, perimeter camera, dragon's teeth, jammer @@ -782,7 +781,7 @@ local unitGrids = { { "corhp", "corfhp", "", "corplat", }, -- hover lab, floating hover lab, seaplane lab } }, - + -- legion commanders legcom = { { @@ -837,7 +836,7 @@ local unitGrids = { { { "leggat", "legbar", "legkark", "legcen", }, -- decurion, barrage, karkinos, centaur { "corrl", "legrail", "legmg", "legdtr", }, -- basic AA, lance, cacophony, dragon maw - { "cordl", "leghive", "corptl", "", },-- coastal torp launcher, hive, offshore torp launcher, dragon tail + { "cordl", "leghive", "cortl", "", },-- coastal torp launcher, hive, offshore torp launcher, dragon tail }, { { "corvoyr", "coreyes", "legdrag", "corspec", }, -- radar bot, perimeter camera, dragon's teeth, jammer bot @@ -1116,7 +1115,7 @@ local unitGrids = { { { "corlab", "corvp", "corap", "corsy", }, -- bot lab, veh lab, air lab, shipyard { "cornanotc", "coravp", }, -- nano, T2 lab - { "leghp", }, -- hover lab, floating hover lab, amphibious lab, seaplane lab + { "corhp", }, -- hover lab, floating hover lab, amphibious lab, seaplane lab } }, legcv = { @@ -1300,7 +1299,7 @@ local unitGrids = { { "corhp", "corfhp", "coramsub", "corplat", }, -- hover lab, floating hover lab, amphibious lab, seaplane lab }, }, - + legch = { { { "legmex", "legsolar", "legwin", "legadvsol", }, -- mex, solar, wind, adv. solar @@ -1310,7 +1309,7 @@ local unitGrids = { { { "leglht", "legmg", "corhlt", "legdtr", }, -- LLT, machine gun, HLT, flame turret { "corrl", "cormadsam", "leglupara", "corfrt" }, -- basic AA, SAM, eradicator, floating AA - { "cordl", "legcluster", "corptl", "corfhlt", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT + { "cordl", "legcluster", "cortl", "corfhlt", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT }, { { "legrad", "legeyes", "legdrag", "legjam", }, -- radar, perimeter camera, dragon's teeth, jammer @@ -1381,7 +1380,7 @@ local unitGrids = { { { "armllt", "armbeamer", "armhlt", "armclaw", }, -- LLT, beamer, HLT, lightning turret { "armrl", "armferret", "armcir", "armfrt",}, -- basic AA, ferret, chainsaw, floating AA - { "armdl", "armguard", "armptl", "armfhlt", }, -- coastal torp launcher, guardian, offshore torp launcher, floating HLT + { "armdl", "armguard", "armtl", "armfhlt", }, -- coastal torp launcher, guardian, offshore torp launcher, floating HLT }, { { "armrad", "armeyes", "armdrag", "armjamt", }, -- radar, perimeter camera, dragon's teeth, jammer @@ -1404,7 +1403,7 @@ local unitGrids = { { { "corllt", "corhllt", "corhlt", "cormaw", }, -- LLT, Double LLT, HLT, flame turret { "corrl", "cormadsam", "corerad", }, -- basic AA, SAM, eradicator - { "cordl", "corpun", "corptl", "corfhlt", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT + { "cordl", "corpun", "cortl", "corfhlt", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT }, { { "corrad", "coreyes", "cordrag", "corjamt", }, -- radar, perimeter camera, dragon's teeth, jammer @@ -1427,7 +1426,7 @@ local unitGrids = { { { "leglht", "legmg", "corhlt", "legdtr", }, -- LLT, machine gun, HLT, flame turret { "legrl", "legrhapsis", "leglupara", "corfrt" }, -- basic AA, SAM, eradicator, floating AA - { "cordl", "legcluster", "corptl", "corfhlt", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT + { "cordl", "legcluster", "cortl", "corfhlt", }, -- coastal torp launcher, punisher, offshore torp launcher, floating HLT }, { { "legrad", "legeyes", "legdrag", "legjam", }, -- radar, perimeter camera, dragon's teeth, jammer @@ -1490,7 +1489,7 @@ local unitGrids = { legack = { { - { "legmoho", "corfus", "corafus", }, -- moho, fusion, afus + { "legmoho", "legfus", "legafus", }, -- moho, fusion, afus { "cormmkr", "legageo", "cormexp", }, -- T2 converter, T2 geo, armed moho { "coruwadves", "legamstor", }, -- hardened energy storage, hardened metal storage, }, @@ -1560,7 +1559,7 @@ local unitGrids = { legacv = { { - { "legmoho", "corfus", "corafus", }, -- moho, fusion, afus + { "legmoho", "legfus", "legafus", }, -- moho, fusion, afus { "cormmkr", "legageo", "cormexp", }, -- T2 converter, T2 geo, armed moho { "coruwadves", "legamstor", }, -- hardened energy storage, hardened metal storage, }, @@ -1629,7 +1628,7 @@ local unitGrids = { }, legaca = { { - { "legmoho", "corfus", "corafus", }, -- moho, fusion, afus + { "legmoho", "legfus", "legafus", }, -- moho, fusion, afus { "cormmkr", "legageo", "cormexp","coruwageo", }, -- T2 converter, T2 geo, armed moho { "coruwadves", "legamstor", }, -- hardened energy storage, hardened metal storage, }, @@ -1865,7 +1864,7 @@ local unitGrids = { legaceb = { { { "legmex", "legsolar", }, -- 0.5 mex, solar - { }, -- + { }, -- { }, -- }, { diff --git a/luaui/configs/hotkeys/legacy_keys.txt b/luaui/configs/hotkeys/legacy_keys.txt index f674d429478..802f02f49fc 100644 --- a/luaui/configs/hotkeys/legacy_keys.txt +++ b/luaui/configs/hotkeys/legacy_keys.txt @@ -162,6 +162,8 @@ bind sc_x buildunit_armmmkr bind Shift+sc_x buildunit_armmmkr bind sc_x buildunit_corfus bind Shift+sc_x buildunit_corfus +bind sc_x buildunit_legfus +bind Shift+sc_x buildunit_legfus bind sc_x buildunit_cormmkr bind Shift+sc_x buildunit_cormmkr bind sc_x buildunit_armtide diff --git a/luaui/configs/hotkeys/legacy_keys_60pct.txt b/luaui/configs/hotkeys/legacy_keys_60pct.txt index 255f0706072..5ea804edc2e 100644 --- a/luaui/configs/hotkeys/legacy_keys_60pct.txt +++ b/luaui/configs/hotkeys/legacy_keys_60pct.txt @@ -159,6 +159,8 @@ bind sc_x buildunit_armmmkr bind Shift+sc_x buildunit_armmmkr bind sc_x buildunit_corfus bind Shift+sc_x buildunit_corfus +bind sc_x buildunit_legfus +bind Shift+sc_x buildunit_legfus bind sc_x buildunit_cormmkr bind Shift+sc_x buildunit_cormmkr bind sc_x buildunit_armtide diff --git a/luaui/configs/unit_buildmenu_config.lua b/luaui/configs/unit_buildmenu_config.lua index 2ddb10361b3..017e41469c4 100644 --- a/luaui/configs/unit_buildmenu_config.lua +++ b/luaui/configs/unit_buildmenu_config.lua @@ -22,7 +22,7 @@ for unitDefID, unitDef in pairs(UnitDefs) do unitGroup[unitDefID] = unitDef.customParams.unitgroup - if unitDef.name == 'armdl' or unitDef.name == 'cordl' or unitDef.name == 'armlance' or unitDef.name == 'cortitan' -- or unitDef.name == 'armbeaver' or unitDef.name == 'cormuskrat' + if unitDef.name == 'armdl' or unitDef.name == 'cordl' or unitDef.name == 'armlance' or unitDef.name == 'cortitan' or unitDef.name == 'legatorpbomber' -- or unitDef.name == 'armbeaver' or unitDef.name == 'cormuskrat' or (unitDef.minWaterDepth > 0 or unitDef.modCategories['ship']) then isWaterUnit[unitDefID] = true end diff --git a/luaui/rml_setup.lua b/luaui/rml_setup.lua index c5e64902d92..8eb18da7b47 100644 --- a/luaui/rml_setup.lua +++ b/luaui/rml_setup.lua @@ -49,7 +49,7 @@ for _, file in ipairs(font_files) do RmlUi.LoadFontFace(file, true) end ---RmlUi.LoadFontFace("fonts/SourceHanSans-Regular.ttc", true) +--RmlUi.LoadFontFace("fonts/fallbacks/SourceHanSans-Regular.ttc", true) --RmlUi.LoadFontFace("fonts/monospaced/SourceCodePro-Medium.otf") -- Mouse Cursor Aliases diff --git a/luaui/setupdefs.lua b/luaui/setupdefs.lua index 6c3657e58d3..f04aa588680 100644 --- a/luaui/setupdefs.lua +++ b/luaui/setupdefs.lua @@ -67,5 +67,7 @@ end -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- +-- Run I18N initialization here in case any widgets try to look up unit names/descriptions outside of callins +-- as that will happen before the gui_language widget gets a chance to run. local i18nDefs = VFS.Include('luaui/i18nhelpers.lua') -i18nDefs.RefreshDefs() +i18nDefs.RefreshDefs() \ No newline at end of file diff --git a/lups/particleclasses/distortionfbo.lua b/lups/particleclasses/distortionfbo.lua new file mode 100644 index 00000000000..36a4a8b31dc --- /dev/null +++ b/lups/particleclasses/distortionfbo.lua @@ -0,0 +1,341 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +--//FIXME: GL_TEXTURE_RECTANGLE support (LuaFBO doesn't support it yet?) + +local PostDistortion = {} +local pd = PostDistortion +PostDistortion.__index = PostDistortion + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +--//shader+FBO/MRT +local fbo +local depthTex, screenCopyTex, jitterTex +local jitterShader +local screenSizeLoc + +--//DisplayLists +local enterIdentity,postDrawAndLeaveIdentity + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +--// some GL const + +local GL_TEXTURE_RECTANGLE = 0x84F5 + +local GL_RGBA16F_ARB = 0x881A +local GL_RGBA32F_ARB = 0x8814 + +local GL_RGBA12 = 0x805A +local GL_RGBA16 = 0x805B + +local GL_DEPTH_BITS = 0x0D56 +local GL_DEPTH_COMPONENT = 0x1902 +local GL_DEPTH_COMPONENT16 = 0x81A5 +local GL_DEPTH_COMPONENT24 = 0x81A6 +local GL_DEPTH_COMPONENT32 = 0x81A7 + +local GL_COLOR_ATTACHMENT0_EXT = 0x8CE0 +local GL_COLOR_ATTACHMENT1_EXT = 0x8CE1 +local GL_COLOR_ATTACHMENT2_EXT = 0x8CE2 +local GL_COLOR_ATTACHMENT3_EXT = 0x8CE3 + +local NON_POWER_OF_TWO = gl.HasExtension("GL_ARB_texture_non_power_of_two") +local TEXRECT = gl.HasExtension("GL_ARB_texture_rectangle") +local FLOAT_TEXTURES = gl.HasExtension("GL_ARB_texture_float") + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +--// SYSTEM CONFIG +PostDistortion.texRectangle = false +PostDistortion.jitterformat = GL_RGBA16F_ARB +PostDistortion.depthformat = GL_DEPTH_COMPONENT +PostDistortion.copyDepthBuffer = true + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +PostDistortion.layer = 1 +PostDistortion.dieGameFrame = math.huge +PostDistortion.repeatEffect = true + +function PostDistortion.GetInfo() + return { + name = "PostDistortion", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "", + + layer = 1, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = true, + shader = true, + rtt = true, + ctt = true, + ms = -1, + } +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function PostDistortion.ViewResize() + gl.DeleteTexture(depthTex) + if (gl.DeleteTextureFBO) then + gl.DeleteTextureFBO(screenCopyTex) + gl.DeleteTextureFBO(jitterTex) + end + + local target = (pd.texRectangle and GL_TEXTURE_RECTANGLE) + + depthTex = gl.CreateTexture(vsx,vsy, { + target = target, + format = PostDistortion.depthformat, + min_filter = GL.NEAREST, + mag_filter = GL.NEAREST, + wrap_s = GL.CLAMP_TO_EDGE, + wrap_t = GL.CLAMP_TO_EDGE, + }) + + screenCopyTex = gl.CreateTexture(vsx,vsy, { + target = target, + min_filter = GL.LINEAR, + mag_filter = GL.LINEAR, + wrap_s = GL.CLAMP_TO_EDGE, + wrap_t = GL.CLAMP_TO_EDGE, + }) + + jitterTex = gl.CreateTexture(vsx,vsy, { + target = target, + format = PostDistortion.jitterformat, + min_filter = GL.NEAREST, + mag_filter = GL.NEAREST, + wrap_s = GL.CLAMP_TO_EDGE, + wrap_t = GL.CLAMP_TO_EDGE, + }) + + fbo.depth = depthTex + fbo.color0 = jitterTex +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local GL_COLOR_BUFFER_BIT = GL.COLOR_BUFFER_BIT +local GL_DEPTH_BUFFER_BIT = GL.DEPTH_BUFFER_BIT +local GL_DEPTH_COLOR_BUFFER_BIT = math.bit_or(GL_DEPTH_BUFFER_BIT,GL_COLOR_BUFFER_BIT) +local glActiveFBO = gl.ActiveFBO +local glCopyToTexture = gl.CopyToTexture +local glCallList = gl.CallList +local glTexture = gl.Texture + + +function PostDistortion:BeginDraw() + if depthTex then + if tracy then tracy.ZoneBeginN("LUPS:PostDistortion:BeginDraw") end + + if tracy then tracy.ZoneBeginN("LUPS:PostDistortion:BeginDraw:glActiveFBOClear") end + glActiveFBO(fbo, gl.Clear, GL_COLOR_BUFFER_BIT, 0,0,0,0) --//clear jitterTex + + if tracy then tracy.ZoneEnd() end + + --// copy depthbuffer to a seperated depth texture, so we can use it in the MRT + if (pd.copyDepthBuffer) then + if tracy then tracy.ZoneBeginN("LUPS:PostDistortion:BeginDraw:copyDepthBuffer") end + glCopyToTexture(depthTex, 0, 0, vpx, vpy, vsx, vsy) + --Spring.Echo("Lups Depth Copy") + if tracy then tracy.ZoneEnd() end + end + + --// update screen copy + if tracy then tracy.ZoneBeginN("LUPS:PostDistortion:BeginDraw:screenCopyTex") end + glCopyToTexture(screenCopyTex, 0, 0, vpx, vpy, vsx, vsy) + if tracy then tracy.ZoneEnd() end + if tracy then tracy.ZoneEnd() end + end +end + +function PostDistortion:EndDraw() + if tracy then tracy.ZoneBeginN("LUPS:PostDistortion:EndDraw") end + glCallList(enterIdentity); + if (pd.texRectangle) then glUniform(screenSizeLoc,vsx,vsy) end + glTexture(0,jitterTex); + glTexture(1,screenCopyTex); + glCallList(postDrawAndLeaveIdentity); + if tracy then tracy.ZoneEnd() end +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function PostDistortion.Initialize() + ------------------------------------------------------------------------------------------ + ------------------------------------------------------------------------------------------ + -- HARDWARE CHECK + -- + + if (LupsConfig.distortions==false) then + return false + end + + if (not (LupsConfig.distortions==true)) then + if (not NON_POWER_OF_TWO)and(not TEXRECT) then + print(PRIO_LESS,"LUPS->Distortion: your hardware is missing non_power_of_two texture support.") + return false + end + + if (not FLOAT_TEXTURES) then + print(PRIO_LESS,"LUPS->Distortion: your hardware is missing floating point texture support.") + return false + end + end + + ------------------------------------------------------------------------------------------ + ------------------------------------------------------------------------------------------ + + if (type(LupsConfig.distortioncopydepthbuffer)=="boolean") then + pd.copyDepthBuffer = LupsConfig.distortioncopydepthbuffer + end + + ------------------------------------------------------------------------------------------ + ------------------------------------------------------------------------------------------ + -- CREATE SHADER + -- + + local defines = "" + if (pd.copyDepthBuffer) then defines = defines .. "#define depthtexture\n" end + + jitterShader = gl.CreateShader({ + fragment = defines .. [[ + #ifdef texrect + #extension GL_ARB_texture_rectangle : enable + + #define sampler2D sampler2DRect + #define texture2D texture2DRect + uniform vec2 ScreenSize; + #endif + + uniform sampler2D infoTex; + uniform sampler2D screenTex; + + #ifdef depthtexture + uniform sampler2D depthTex; + #endif + + void main(void) + { + + #ifdef texrect + vec2 texcoord = gl_FragCoord.xy; + #else + vec2 texcoord = gl_TexCoord[0].st; + #endif + + vec4 offset = texture2D(infoTex, texcoord ); + if (offset.a>0.001) { + + #ifdef texrect + vec2 texcoord2 = gl_FragCoord.xy+offset.st*ScreenSize; + #else + vec2 texcoord2 = gl_TexCoord[0].st+offset.st; + #endif + + gl_FragColor = texture2D(screenTex, texcoord2 ); + gl_FragColor.rgb += offset.b; + + #ifdef depthtexture + gl_FragDepth = texture2D(depthTex, texcoord ).z; + #endif + + }else{ + discard; + } + } + ]], + uniformInt = { + infoTex = 0, + screenTex = 1, + depthTex = 2, + ScreenSize = {vsx,vsy}, + }, + }) + + if (jitterShader==nil) then + print(PRIO_MAJOR,"LUPS->Distortion: Critical Shader Error: " ..gl.GetShaderLog()) + return false + end + + if (pd.texRectangle) then + screenSizeLoc = gl.GetUniformLocation(jitterShader,"ScreenSize") + end + + ------------------------------------------------------------------------------------------ + ------------------------------------------------------------------------------------------ + -- FBO + some OpenGL stuff + -- + + enterIdentity = gl.CreateList(function() + gl.DepthTest(false); + gl.UseShader(jitterShader); + gl.Blending(GL.ONE,GL.ZERO); + + gl.MatrixMode(GL.PROJECTION); gl.PushMatrix(); gl.LoadIdentity(); + gl.MatrixMode(GL.MODELVIEW); gl.PushMatrix(); gl.LoadIdentity(); + end) + + postDrawAndLeaveIdentity = gl.CreateList(function() + gl.TexRect(-1,1,1,-1); + gl.Texture(0,false); + gl.Texture(1,false); + gl.Texture(2,false); + + gl.MatrixMode(GL.PROJECTION); gl.PopMatrix(); + gl.MatrixMode(GL.MODELVIEW); gl.PopMatrix(); + + gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA); + gl.UseShader(0); + gl.DepthTest(true); + end) + + fbo = gl.CreateFBO() + fbo.drawbuffers = GL_COLOR_ATTACHMENT0_EXT + pd.fbo = fbo +end + +function PostDistortion.Finalize() + gl.DeleteTexture(depthTex or 0) + if (gl.DeleteTextureFBO) then + gl.DeleteTextureFBO(screenCopyTex or 0) + gl.DeleteTextureFBO(jitterTex or 0) + end + if (gl.DeleteFBO) then + gl.DeleteFBO(fbo or 0) + end + if (gl.DeleteShader) then + gl.DeleteShader(jitterShader or 0) + end + + gl.DeleteList(enterIdentity or 0) + gl.DeleteList(postDrawAndLeaveIdentity or 0) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function PostDistortion.Create() + local newObject = {} + setmetatable(newObject,PostDistortion) + return newObject +end + +function PostDistortion:Destroy() +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return PostDistortion \ No newline at end of file diff --git a/lups/particleclasses/jitterparticles2.lua b/lups/particleclasses/jitterparticles2.lua new file mode 100644 index 00000000000..de1e9e1ad7a --- /dev/null +++ b/lups/particleclasses/jitterparticles2.lua @@ -0,0 +1,433 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local JitterParticles2 = {} +JitterParticles2.__index = JitterParticles2 + +local billShader +local colormapUniform = {} + +local lastTexture = "" + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function JitterParticles2.GetInfo() + return { + name = "JitterParticles2", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "This is a simialr class to JitterParticles, just that it is 100% implemented with shaders, todo so it miss the Airdrag tags and added new Exp tags.", + + layer = 0, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = false, + shader = true, + distortion= true, + rtt = false, + ctt = false, + } +end + +JitterParticles2.Default = { + emitVector = {0,1,0}, + pos = {0,0,0}, --// start pos + partpos = "0,0,0", --// particle relative start pos (can contain lua code!) + layer = 0, + + --// visibility check + los = true, + airLos = true, + radar = false, + + count = 1, + + life = 0, + lifeSpread = 0, + delaySpread = 0, + + emitVector = {0,1,0}, + emitRot = 0, + emitRotSpread = 0, + + force = {0,0,0}, --// global effect force + forceExp = 1, + + speed = 0, + speedSpread = 0, + speedExp = 1, --// >1 : first decrease slow, then fast; <1 : decrease fast, then slow + + size = 0, + sizeSpread = 0, + sizeGrowth = 0, + sizeExp = 1, --// >1 : first decrease slow, then fast; <1 : decrease fast, then slow; <0 : invert x-axis (start large become smaller) + + texture = 'bitmaps/GPL/Lups/mynoise.png', + + strength = 1, --// distortion strength + scale = 1, --// scales the distortion texture + animSpeed = 1, --// speed of the distortion + heat = 0, --// brighten distorted regions by "length(distortionVec)*heat" + + repeatEffect = false, --can be a number,too +} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +--// speed ups + +local abs = math.abs +local sqrt = math.sqrt +local rand = math.random +local twopi = 2 * math.pi +local cos = math.cos +local sin = math.sin +local min = math.min +local floor = math.floor +local degreeToPI = math.pi/180 + +local spGetUnitViewPosition = Spring.GetUnitViewPosition +local spGetPositionLosState = Spring.GetPositionLosState +local spGetUnitLosState = Spring.GetUnitLosState +local spIsSphereInView = Spring.IsSphereInView +local spGetUnitRadius = Spring.GetUnitRadius +local spGetProjectilePosition = Spring.GetProjectilePosition + +local IsPosInLos = Spring.IsPosInLos +local IsPosInAirLos = Spring.IsPosInAirLos +local IsPosInRadar = Spring.IsPosInRadar + +local glTexture = gl.Texture +local glBlending = gl.Blending +local glUniform = gl.Uniform +local glUniformInt = gl.UniformInt +local glPushMatrix = gl.PushMatrix +local glPopMatrix = gl.PopMatrix +local glTranslate = gl.Translate +local glCreateList = gl.CreateList +local glCallList = gl.CallList +local glRotate = gl.Rotate +local glColor = gl.Color +local glUseShader = gl.UseShader + +local GL_QUADS = GL.QUADS +local GL_ONE = GL.ONE +local GL_SRC_ALPHA = GL.SRC_ALPHA +local GL_ONE_MINUS_SRC_ALPHA = GL.ONE_MINUS_SRC_ALPHA + +local glBeginEnd = gl.BeginEnd +local glMultiTexCoord= gl.MultiTexCoord +local glVertex = gl.Vertex + +local ProcessParamCode = ProcessParamCode +local ParseParamString = ParseParamString +local Vmul = Vmul +local Vlength = Vlength + +local nullVector = {0,0,0} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function JitterParticles2:CreateParticleAttributes(up, right, forward, partpos,n) + local life, delay, pos, speed, sizeStart,sizeEnd, rotStart,rotEnd; + + local az = rand()*twopi; + local ay = (self.emitRot + rand() * self.emitRotSpread) * degreeToPI; + + local a,b,c = cos(ay), cos(az)*sin(ay), sin(az)*sin(ay) + + speed = { + up[1]*a - right[1]*b + forward[1]*c, + up[2]*a - right[2]*b + forward[2]*c, + up[3]*a - right[3]*b + forward[3]*c} + + life = self.life + rand() * self.lifeSpread + speed = Vmul( speed,( self.speed + rand() * self.speedSpread) * life) + delay = rand() * self.delaySpread + + sizeStart = self.size + rand() * self.sizeSpread + sizeEnd = sizeStart + self.sizeGrowth * life + + if (partpos) then + --local part = { speed=speed, velocity=Vlength(speed), life=life, delay=delay, i=n } + pos = {speed[1] * delay, speed[2] * delay, speed[3]* delay } + else + pos = nullVector + end + + return life, delay, + pos[1],pos[2],pos[3], + speed[1],speed[2],speed[3], + sizeStart,sizeEnd; +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- +local time + +function JitterParticles2.BeginDrawDistortion() + glUseShader(billShader) + time = (Spring.GetGameFrame() + Spring.GetFrameTimeOffset()) / (Game.gameSpeed * 10) +end + +function JitterParticles2.EndDrawDistortion() + glTexture(0,false) + glUseShader(0) + + lastTexture="" +end + +function JitterParticles2:DrawDistortion() + if (lastTexture~=self.texture) then + glTexture(0,self.texture) + lastTexture=self.texture + end + + glMultiTexCoord(5, (self.frame + Spring.GetFrameTimeOffset())/200, time*self.animSpeed) + glCallList(self.dlist) +end + + +local function DrawParticleForDList(life,delay, x,y,z, dx,dy,dz, sizeStart,sizeEnd) + local animDirX = floor((rand() - 0.5) * 2) + local animDirY = floor((rand() - 0.5) * 2) + + glMultiTexCoord(0, x,y,z, life/200) + glMultiTexCoord(1, dx,dy,dz, delay/200) + glMultiTexCoord(2, sizeStart, sizeEnd, animDirX,animDirY ) + + glVertex(0,0) + glVertex(1,0) + glVertex(1,1) + glVertex(0,1) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function JitterParticles2:Initialize() + billShader = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + // global attributes + #define frame gl_MultiTexCoord5.x + #define time gl_MultiTexCoord5.y + #define forceExp gl_MultiTexCoord4.w + #define force (gl_MultiTexCoord4.xyz) + #define distStrength gl_MultiTexCoord6.x + #define distScale gl_MultiTexCoord6.y + #define distHeat gl_MultiTexCoord6.z + #define animDir (gl_MultiTexCoord2.zw) + + // particle attributes + #define posV (gl_MultiTexCoord0.xyz) + #define dirV (gl_MultiTexCoord1.xyz) + #define maxLife gl_MultiTexCoord0.w + #define delay gl_MultiTexCoord1.w + + #define sizeStart gl_MultiTexCoord2.x + #define sizeEnd gl_MultiTexCoord2.y + // equation is: 1-(1-life)^exp + #define attributesExp (gl_MultiTexCoord3.xy) + + const float halfpi = 0.159; + + + varying float strength; + varying float heat; + varying vec4 texCoords; + + void main() + { + float lframe = frame - delay; + float life = lframe / maxLife; // 0.0 .. 1.0 range! + + if (life<=0.0 || life>1.0) { + // move dead particles offscreen, this way we don't dump the fragment shader with it + gl_Position = vec4(-2000.0,-2000.0,-2000.0,-2000.0); + }else{ + // calc particle attributes + vec2 attrib = vec2(1.0) - pow(vec2(1.0 - life), abs(attributesExp)); + //if (attributesExp.x<0.0) attrib.x = 1.0 - attrib.x; // speed (no need for backward movement) + if (attributesExp.y<0.0) attrib.y = 1.0 - attrib.y; // size + attrib.y = sizeStart + attrib.y * sizeEnd; + + // calc vertex position + vec3 forceV = (1.0 - pow(1.0 - life, abs(forceExp))) * force; + vec4 pos4 = vec4(posV + attrib.x * dirV + forceV, 1.0); + gl_Position = gl_ModelViewMatrix * pos4; + + // offset vertex from center of the polygon + gl_Position.xy += (gl_Vertex.xy - 0.5) * attrib.y; + + // final position + gl_Position = gl_ProjectionMatrix * gl_Position; + + // calc some stuff used by the fragment shader + texCoords.st = (gl_Vertex.st + animDir * time) * distScale; + strength = (1.0 - life) * distStrength; + heat = distHeat; + texCoords.pq = (gl_Vertex.xy - 0.5) * 2.0; + } + } + ]], + fragment = [[ + #version 150 compatibility + uniform sampler2D noiseMap; + + varying float strength; + varying float heat; + varying vec4 texCoords; + + void main() + { + vec2 noiseVec; + vec4 noise = texture2D(noiseMap, texCoords.st); + noiseVec = (noise.xy - 0.50) * strength; + + noiseVec *= smoothstep(1.0, 0.0, dot(texCoords.pq,texCoords.pq) ); // smooth dot (FIXME: use a mask texture instead?) + + gl_FragColor = vec4(noiseVec,length(noiseVec)*heat,gl_FragCoord.z); + } + ]], + uniformInt = { + noiseMap = 0, + }, + }) + + if (billShader==nil) then + print(PRIO_MAJOR,"LUPS->JitterParticles2: Critical Shader Error: " ..gl.GetShaderLog()) + return false + end +end + +function JitterParticles2:Finalize() + gl.DeleteShader(billShader) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function JitterParticles2:Update(n) + self.frame = self.frame + n +end + +-- used if repeatEffect=true; +function JitterParticles2:ReInitialize() + self.frame = 0 + self.dieGameFrame = self.dieGameFrame + self.life + self.lifeSpread + self.delaySpread +end + +local function InitializeParticles(self) + -- calc base of the emitvector system + local up = self.emitVector; + local right = Vcross( up, {up[2],up[3],-up[1]} ); + local forward = Vcross( up, right ); + + --local partposCode + --if (self.partpos ~= "0,0,0") then + -- partposCode = ParseParamString(self.partpos) + --end + + self.force = Vmul(self.force,self.life + self.lifeSpread) + + local ev = self.emitVector + local emitMatrix = CreateEmitMatrix3x3(ev[1],ev[2],ev[3]) + + --// global data + glMultiTexCoord(3, self.speedExp, self.sizeExp) + glMultiTexCoord(4, self.force[1], self.force[2], self.force[3], self.forceExp) + glMultiTexCoord(6, self.strength * 0.01, self.scale, self.heat/self.strength) + + self.maxSpawnRadius = 0 + for i=1,self.count do + local life,delay, x,y,z, dx,dy,dz, sizeStart,sizeEnd = self:CreateParticleAttributes(up,right,forward, self.partpos, i-1) + dx,dy,dz = MultMatrix3x3(emitMatrix,dx,dy,dz) + DrawParticleForDList(life, delay, + x,y,z, -- relative start pos + dx,dy,dz, -- speed vector + sizeStart,sizeEnd) + local spawnDist = x*x + y*y + z*z + if (spawnDist>self.maxSpawnRadius) then self.maxSpawnRadius=spawnDist end + end + self.maxSpawnRadius = sqrt(self.maxSpawnRadius) + + glMultiTexCoord(2, 0,0,0,1) + glMultiTexCoord(3, 0,0,0,1) + glMultiTexCoord(4, 0,0,0,1) + glMultiTexCoord(5, 0,0,0,1) + glMultiTexCoord(6, 0,0,0,1) +end + +local function CreateDList(self) + glPushMatrix() + glTranslate(self.pos[1],self.pos[2],self.pos[3]) + glBeginEnd(GL_QUADS,InitializeParticles,self) + glPopMatrix() +end + +function JitterParticles2:CreateParticle() + self.dlist = glCreateList(CreateDList,self) + + self.frame = 0 + self.firstGameFrame = thisGameFrame + self.dieGameFrame = self.firstGameFrame + self.life + self.lifeSpread + self.delaySpread + + --// visibility check vars + self.radius = self.size + self.sizeSpread + self.maxSpawnRadius + 100 + self.maxSpeed = self.speed + abs(self.speedSpread) + self.forceStrength = Vlength(self.force) + self.sphereGrowth = self.forceStrength + self.sizeGrowth + self.maxSpeed +end + +function JitterParticles2:Destroy() + gl.DeleteList(self.dlist) + --gl.DeleteTexture(self.texture) +end + +function JitterParticles2:Visible() + local radius = self.radius + + self.frame*self.sphereGrowth --FIXME: frame is only updated on Update() + local posX,posY,posZ = self.pos[1],self.pos[2],self.pos[3] + local losState + if (self.unit and not self.worldspace) then + local ux,uy,uz = spGetUnitViewPosition(self.unit) + posX,posY,posZ = posX+ux,posY+uy,posZ+uz + radius = radius + spGetUnitRadius(self.unit) + losState = GetUnitLosState(self.unit) + elseif (self.projectile and not self.worldspace) then + local px,py,pz = spGetProjectilePosition(self.projectile) + posX,posY,posZ = posX+px,posY+py,posZ+pz + end + if (losState==nil) then + if (self.radar) then + losState = IsPosInRadar(posX,posY,posZ) + end + if ((not losState) and self.airLos) then + losState = IsPosInAirLos(posX,posY,posZ) + end + if ((not losState) and self.los) then + losState = IsPosInLos(posX,posY,posZ) + end + end + return (losState)and(spIsSphereInView(posX,posY,posZ,radius)) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local setmetatable = setmetatable + +function JitterParticles2.Create(Options) + local newObject = table.merge(JitterParticles2.Default, Options) + setmetatable(newObject,JitterParticles2) --// make handle lookup + newObject:CreateParticle() + return newObject +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return JitterParticles2 diff --git a/lups/particleclasses/layers.txt b/lups/particleclasses/layers.txt new file mode 100644 index 00000000000..968e419dad1 --- /dev/null +++ b/lups/particleclasses/layers.txt @@ -0,0 +1,6 @@ +-32 groundflash +-24 sphere +-16 bursts +0 simplePart +1 distortionFBO +4 airjet diff --git a/lups/particleclasses/shieldjitter.lua b/lups/particleclasses/shieldjitter.lua new file mode 100644 index 00000000000..2d7ed54fd8f --- /dev/null +++ b/lups/particleclasses/shieldjitter.lua @@ -0,0 +1,205 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local ShieldJitter = {} +ShieldJitter.__index = ShieldJitter + +local warpShader +local timerUniform, strengthUniform +local sphereList +local checkStunned = true + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShieldJitter.GetInfo() + return { + name = "ShieldJitter", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "", + + layer = 16, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = true, + shader = true, + distortion= true, + rtt = false, + ctt = true, + intel = 0, + } +end + +ShieldJitter.Default = { + layer = 16, + + pos = {0,0,0}, --// start pos + life = math.huge, + + size = 600, + --precision = 26, --// bias the used polies for a sphere + + strength = 0.005, + strengthMin= nil, + texture = 'bitmaps/GPL/Lups/grass5.png', + --texture = 'bitmaps/GPL/Lups/perlin_noise.jpg', + + repeatEffect = false, + dieGameFrame = math.huge +} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShieldJitter:BeginDrawDistortion() + gl.UseShader(warpShader) + local drawTime = (Spring.GetGameFrame() + Spring.GetFrameTimeOffset()) * 0.003333333 + gl.Uniform(timerUniform, drawTime) + + gl.Culling(GL.FRONT) --FIXME: check if camera is in the sphere +end + +function ShieldJitter:EndDrawDistortion() + gl.UseShader(0) + gl.Texture(0,false) + + gl.Culling(false) +end + +function ShieldJitter:DrawDistortion() + if checkStunned then + self.stunned = Spring.GetUnitIsStunned(self.unit) + end + if self.stunned then + return + end + + local pos = self.pos + local size = self.size + + gl.Uniform(strengthUniform, self.strength, self.strengthMin) + + gl.Texture(0, self.texture) + gl.PushMatrix() + gl.Translate(pos[1], pos[2], pos[3]) + gl.Scale(size, size, size) + gl.CallList(sphereList) + gl.PopMatrix() +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShieldJitter.Initialize() + ShieldJitter.Default.strengthMin = ShieldJitter.Default.strengthMin or ShieldJitter.Default.strength + + warpShader = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + uniform float timer; + uniform vec2 strength; + + varying float scale; + varying vec2 texCoord; + + void main() + { + vec4 viewPos = gl_ModelViewMatrix * gl_Vertex; + texCoord = gl_MultiTexCoord0.st + timer; + + vec3 normal = normalize(gl_NormalMatrix * gl_Normal); + vec3 nvertex = normalize(viewPos.xyz); + + float normCamDist = smoothstep(50.0, 5000.0, length(viewPos.xyz)); + float strengthCamDist = mix(strength.y, strength.x, normCamDist); + + scale = strengthCamDist * abs(dot( normal, nvertex )); + + gl_Position = gl_ProjectionMatrix * viewPos; + } + ]], + fragment = [[ + #version 150 compatibility + uniform sampler2D noiseMap; + + varying float scale; + varying vec2 texCoord; + + void main(void) + { + vec2 noiseVec; + noiseVec = texture2D(noiseMap, texCoord).yz - 0.5; + noiseVec *= scale; + + gl_FragColor = vec4(noiseVec,0.0,gl_FragCoord.z); + } + ]], + uniformInt = { + noiseMap = 0, + }, + uniformFloat = { + timer = 0, + strength = {ShieldJitter.Default.strength, ShieldJitter.Default.strengthMin}, + } + }) + + if (warpShader == nil) then + print(PRIO_MAJOR,"LUPS->ShieldJitter: shader error: "..gl.GetShaderLog()) + return false + end + + timerUniform = gl.GetUniformLocation(warpShader, 'timer') + strengthUniform = gl.GetUniformLocation(warpShader, 'strength') + + sphereList = gl.CreateList(DrawSphere,0,0,0,1,22) +end + +function ShieldJitter.Finalize() + gl.DeleteShader(warpShader) + gl.DeleteList(sphereList) + gl.DeleteTexture(tex) +end + +function ShieldJitter.ViewResize(viewSizeX, viewSizeY) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local time = 0 +function ShieldJitter:Update(dt) + time = time + dt + if time > 45 then + checkStunned = true + time = 0 + else + checkStunned = false + end +end + +-- used if repeatEffect=true; +function ShieldJitter:ReInitialize() + self.dieGameFrame = self.dieGameFrame + self.life +end + +function ShieldJitter:CreateParticle() +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShieldJitter.Create(Options) + local newObject = table.merge(ShieldJitter.Default, Options) + setmetatable(newObject,ShieldJitter) -- make handle lookup + newObject:CreateParticle() + return newObject +end + +function ShieldJitter:Destroy() + gl.DeleteTexture(self.texture) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return ShieldJitter \ No newline at end of file diff --git a/lups/particleclasses/shockwave.lua b/lups/particleclasses/shockwave.lua new file mode 100644 index 00000000000..ac1807eb457 --- /dev/null +++ b/lups/particleclasses/shockwave.lua @@ -0,0 +1,217 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local ShockWave = {} +ShockWave.__index = ShockWave + +local warpShader +local screenLoc +local dlist + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShockWave.GetInfo() + return { + name = "ShockWave", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "", + + layer = 1, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = true, + shader = true, + distortion= true, + intel = 0, + } +end + +ShockWave.Default = { + layer = 1, + worldspace = true, + + life = 23, + pos = {0,0,0}, + growth = 4.5, + + repeatEffect = false, + dieGameFrame = math.huge +} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local glUniform = gl.Uniform +local glUseShader = gl.UseShader +local glCallList = gl.CallList +local glMultiTexCoord = gl.MultiTexCoord +local spWorldToScreenCoords = Spring.WorldToScreenCoords + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShockWave:BeginDrawDistortion() + glUseShader(warpShader) + --glUniform(screenLoc, 1/vsx,1/vsy ) +end + +function ShockWave:EndDrawDistortion() + glUseShader(0) +end + + +function ShockWave:DrawDistortion() + local pos = self.pos + local x,y,z = pos[1],pos[2],pos[3] + local cx,cy = spWorldToScreenCoords(x,y,z) + + glMultiTexCoord(0,x,y,z,1) + glMultiTexCoord(1,cx,cy,self.radius,self.life2) + + glCallList(dlist) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShockWave.Initialize() + warpShader = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + uniform float radius; + + out vec2 center; + out float life; + out vec2 texCoord; + + void main() + { + center = gl_MultiTexCoord1.xy; + life = gl_MultiTexCoord1.w; + texCoord = gl_Vertex.st; + + gl_Position = gl_ModelViewMatrix * gl_MultiTexCoord0; + gl_Position.xy += gl_Vertex.xy * gl_MultiTexCoord1.z; + gl_Position = gl_ProjectionMatrix * gl_Position; + } + ]], + fragment = [[ + #version 150 compatibility + uniform vec2 screenInverse; + + in vec2 center; + in float life; + in vec2 texCoord; + + float p1 = gl_ProjectionMatrix[2][2]; + float p2 = gl_ProjectionMatrix[2][3]; + + float ConvertZtoEye(float z) + { + return p2/(z*2.0-1.0+p1); + } + + float ConvertEyeToZ(float d) + { + return 0.5-0.5*p1+(1.0/(2.0*d))*p2; + } + + void main(void) + { + float dist = (length(texCoord)-0.6)*2.5; + if (dist>1.0) { + discard; + }else{ + float eyeDepth = ConvertZtoEye(gl_FragCoord.z); + eyeDepth -= cos(asin(dist))*30.0; + gl_FragDepth = ConvertEyeToZ(eyeDepth); + + vec2 d = gl_FragCoord.xy - center; + float distortion = exp( -0.5*( pow(-dist*8.0+4.0,2.0) ) )*0.15; + vec2 noiseVec = (d/dist)*screenInverse*distortion*life; + gl_FragColor.xyw = vec3(noiseVec,gl_FragCoord.z); + //gl_FragColor.rgb = vec3 ( 10000.3,10000.9,gl_FragCoord.z); // for debugging + //float distortion = pow(dist, 1.0/4.0)-dist; + //float distortion = smoothstep(1.0,0.0,dist)*0.25; + //float distortion = tanh(dist*3.0)-dist; + //float distortion = smoothstep(0.0,1.0,dist)-dist; + } + } + ]], + uniform = { + screenInverse = {1/1280,1/1024}, + life = 1, + } + }) + + if (warpShader == nil) then + print(PRIO_MAJOR,"LUPS->ShockWave: critical shader error: "..gl.GetShaderLog()) + return false + end + + screenLoc = gl.GetUniformLocation(warpShader, 'screenInverse') + + dlist = gl.CreateList(gl.BeginEnd,GL.QUADS,function() + gl.Vertex(-1,1) + gl.Vertex(1,1) + gl.Vertex(1,-1) + gl.Vertex(-1,-1) + end) +end + +function ShockWave.Finalize() + if (gl.DeleteShader) then + gl.DeleteShader(warpShader) + end + gl.DeleteList(dlist) +end + +function ShockWave.ViewResize() + gl.UseShader(warpShader) + gl.Uniform(screenLoc,1/vsx,1/vsy) + gl.UseShader(0) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShockWave:Update() + self.life2 = self.life2 - self.life_inc + self.radius = self.radius + self.growth +end + +-- used if repeatEffect=true; +function ShockWave:ReInitialize() + self.life2 = 1 + self.radius = 0 + self.startGameFrame = thisGameFrame + self.dieGameFrame = self.startGameFrame + self.life +end + +function ShockWave:CreateParticle() + self.startGameFrame = thisGameFrame + self.dieGameFrame = self.startGameFrame + self.life + + self.life2 = 1 + self.life_inc = 1/(self.dieGameFrame - self.startGameFrame) + self.radius = 0 +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function ShockWave.Create(Options) + local newObject = table.merge(ShockWave.Default, Options) + setmetatable(newObject,ShockWave) -- make handle lookup + newObject:CreateParticle() + return newObject +end + +function ShockWave:Destroy() +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return ShockWave \ No newline at end of file diff --git a/lups/particleclasses/simpleparticles2.lua b/lups/particleclasses/simpleparticles2.lua new file mode 100644 index 00000000000..7db7faf54e1 --- /dev/null +++ b/lups/particleclasses/simpleparticles2.lua @@ -0,0 +1,427 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local SimpleParticles2 = {} +SimpleParticles2.__index = SimpleParticles2 + +local billShader +local colormapUniform = {} + +local lastTexture = "" + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SimpleParticles2.GetInfo() + return { + name = "SimpleParticles2", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "This is a simialr class to SimpleParticles, just that it is 100% implemented with shaders, todo so it miss the Airdrag tags and added new Exp tags.", + + layer = 0, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = false, + shader = true, + rtt = false, + ctt = false, + } +end + +SimpleParticles2.Default = { + emitVector = {0,1,0}, + pos = {0,0,0}, --// start pos + partpos = "0,0,0", --// particle relative start pos (can contain lua code!) + layer = 0, + + --// visibility check + los = true, + airLos = true, + radar = false, + + count = 1, + force = {0,0,0}, --// global effect force + forceExp = 1, + speed = 0, + speedSpread = 0, + speedExp = 1, --// >1 : first decrease slow, then fast; <1 : decrease fast, then slow + life = 0, + lifeSpread = 0, + delaySpread = 0, + rotSpeed = 0, + rotSpeedSpread = 0, + rotSpread = 0, + rotExp = 1, --// >1 : first decrease slow, then fast; <1 : decrease fast, then slow; <0 : invert x-axis (start large become smaller) + emitRot = 0, + emitRotSpread = 0, + size = 0, + sizeSpread = 0, + sizeGrowth = 0, + sizeExp = 1, --// >1 : first decrease slow, then fast; <1 : decrease fast, then slow; <0 : invert x-axis (start large become smaller) + colormap = { {0, 0, 0, 0} }, --//max 16 entries + texture = '', + repeatEffect = false, --can be a number,too +} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +--// speed ups + +local abs = math.abs +local sqrt = math.sqrt +local rand = math.random +local twopi= 2*math.pi +local cos = math.cos +local sin = math.sin +local min = math.min +local degreeToPI = math.pi/180 + +local spGetUnitViewPosition = Spring.GetUnitViewPosition +local spGetPositionLosState = Spring.GetPositionLosState +local spGetUnitLosState = Spring.GetUnitLosState +local spIsSphereInView = Spring.IsSphereInView +local spGetUnitRadius = Spring.GetUnitRadius +local spGetProjectilePosition = Spring.GetProjectilePosition + +local IsPosInLos = Spring.IsPosInLos +local IsPosInAirLos = Spring.IsPosInAirLos +local IsPosInRadar = Spring.IsPosInRadar + +local glTexture = gl.Texture +local glBlending = gl.Blending +local glUniform = gl.Uniform +local glUniformInt = gl.UniformInt +local glPushMatrix = gl.PushMatrix +local glPopMatrix = gl.PopMatrix +local glTranslate = gl.Translate +local glCreateList = gl.CreateList +local glCallList = gl.CallList +local glRotate = gl.Rotate +local glColor = gl.Color +local glUseShader = gl.UseShader + +local GL_QUADS = GL.QUADS +local GL_ONE = GL.ONE +local GL_SRC_ALPHA = GL.SRC_ALPHA +local GL_ONE_MINUS_SRC_ALPHA = GL.ONE_MINUS_SRC_ALPHA + +local glBeginEnd = gl.BeginEnd +local glMultiTexCoord= gl.MultiTexCoord +local glVertex = gl.Vertex + +local ProcessParamCode = ProcessParamCode +local ParseParamString = ParseParamString +local Vmul = Vmul +local Vlength = Vlength + +local nullVector = {0,0,0} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SimpleParticles2:CreateParticleAttributes(up, right, forward, partpos,n) + local life, delay, pos, speed, sizeStart,sizeEnd, rotStart,rotEnd; + + local az = rand()*twopi; + local ay = (self.emitRot + rand() * self.emitRotSpread) * degreeToPI; + + local a,b,c = cos(ay), cos(az)*sin(ay), sin(az)*sin(ay) + + speed = { + up[1]*a - right[1]*b + forward[1]*c, + up[2]*a - right[2]*b + forward[2]*c, + up[3]*a - right[3]*b + forward[3]*c} + + life = self.life + rand() * self.lifeSpread + speed = Vmul( speed,( self.speed + rand() * self.speedSpread) * life) + delay = rand() * self.delaySpread + + sizeStart = self.size + rand() * self.sizeSpread + sizeEnd = sizeStart + self.sizeGrowth * life + rotStart = rand() * self.rotSpread * degreeToPI + rotEnd = (self.rotSpeed + rand() * self.rotSpeedSpread) * life * degreeToPI + + if (partpos) then + local part = { speed=speed, velocity=Vlength(speed), life=life, delay=delay, i=n } + pos = { ProcessParamCode(partpos, part) } + else + pos = nullVector + end + + return life, delay, + pos[1],pos[2],pos[3], + speed[1],speed[2],speed[3], + sizeStart,sizeEnd, + rotStart,rotEnd; +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SimpleParticles2.BeginDraw() + glUseShader(billShader) + glBlending(GL_ONE, GL_ONE_MINUS_SRC_ALPHA) +end + +function SimpleParticles2.EndDraw() + glTexture(0,false) + glBlending(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glUseShader(0) + + lastTexture="" +end + +function SimpleParticles2:Draw() + if (lastTexture~=self.texture) then + glTexture(0,self.texture) + lastTexture=self.texture + end + + glMultiTexCoord(5, self.frame/200) + glCallList(self.dlist) +end + + +local function DrawParticleForDList(life,delay, x,y,z, dx,dy,dz, sizeStart,sizeEnd, rotStart,rotEnd) + glMultiTexCoord(0, x,y,z, life/200) + glMultiTexCoord(1, dx,dy,dz, delay/200) + glMultiTexCoord(2, sizeStart, rotStart, sizeEnd, rotEnd) + + glVertex(0,0) + glVertex(1,0) + glVertex(1,1) + glVertex(0,1) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SimpleParticles2:Initialize() + billShader = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + uniform vec4 colormap[16]; + + varying vec2 texCoord; + + // global attributes + #define iframe gl_MultiTexCoord5.x + #define colors gl_MultiTexCoord3.w + #define forceExp gl_MultiTexCoord4.w + #define forceDir (gl_MultiTexCoord4.xyz) + + // particle attributes + #define posV (gl_MultiTexCoord0.xyz) + #define dirV (gl_MultiTexCoord1.xyz) + #define maxLife gl_MultiTexCoord0.w + #define delay gl_MultiTexCoord1.w + + // 1. holds dist,size and rot start values + // 2. holds dist,size and rot end values + // 3. holds dist,size and rot exponent values (equation is: 1-(1-life)^exp) + #define attributesStart vec3(0.0,gl_MultiTexCoord2.xy) + #define attributesEnd vec3(0.0,gl_MultiTexCoord2.zw) + #define attributesExp (gl_MultiTexCoord3.xyz) + + void main() + { + float lframe = iframe - delay; + float life = lframe / maxLife; // 0.0 .. 1.0 range! + + if (life<=0.0 || life>1.0) { + // move dead particles offscreen, this way we don't dump the fragment shader with it + gl_Position = vec4(-2000.0,-2000.0,-2000.0,-2000.0); + }else{ + // calc color + float cpos = life * colors; + int ipos1 = int(cpos); + int ipos2 = int(min(float(ipos1 + 1),colors)); + gl_FrontColor = mix(colormap[ipos1], colormap[ipos2], fract(cpos)); + + // calc particle attributes + vec3 attrib = vec3(1.0) - pow(vec3(1.0 - life), abs(attributesExp)); + //if (attributesExp.x<0.0) attrib.x = 1.0 - attrib.x; // speed (no need for backward movement) + if (attributesExp.y<0.0) attrib.y = 1.0 - attrib.y; // size + if (attributesExp.z<0.0) attrib.z = 1.0 - attrib.z; // rot + attrib.yz = attributesStart.yz + attrib.yz * attributesEnd.yz; + + // calc vertex position + vec3 forceV = (1.0 - pow(1.0 - life, abs(forceExp))) * forceDir; //FIXME combine with other attribs! + vec4 pos4 = vec4(posV + attrib.x * dirV + forceV, 1.0); + gl_Position = gl_ModelViewMatrix * pos4; + + // calc particle rotation + float alpha = attrib.z; + float ca = cos(alpha); + float sa = sin(alpha); + mat2 rotation = mat2( ca , -sa, sa, ca ); + + // offset vertex from center of the polygon + gl_Position.xy += rotation * ( (gl_Vertex.xy - 0.5) * attrib.y ); + + // end + gl_Position = gl_ProjectionMatrix * gl_Position; + texCoord = gl_Vertex.xy; + } + } + ]], + fragment = [[ + #version 150 compatibility + uniform sampler2D tex0; + + varying vec2 texCoord; + + void main() + { + gl_FragColor = texture2D(tex0,texCoord) * gl_Color; + } + ]], + uniformInt = { + tex0 = 0, + }, + }) + + if (billShader==nil) then + print(PRIO_MAJOR,"LUPS->SimpleParticles2: Critical Shader Error: " ..gl.GetShaderLog()) + return false + end + + for i=1,16 do + colormapUniform[i] = gl.GetUniformLocation(billShader,"colormap["..(i-1).."]") + end +end + +function SimpleParticles2:Finalize() + gl.DeleteShader(billShader) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SimpleParticles2:Update(n) + self.frame = self.frame + n +end + +-- used if repeatEffect=true; +function SimpleParticles2:ReInitialize() + self.frame = 0 + self.dieGameFrame = self.dieGameFrame + self.life + self.lifeSpread + self.delaySpread +end + +local function InitializeParticles(self) + -- calc base of the emitvector system + local up = self.emitVector; + local right = Vcross( up, {up[2],up[3],-up[1]} ); + local forward = Vcross( up, right ); + + local partposCode + if (self.partpos ~= "0,0,0") then + partposCode = ParseParamString(self.partpos) + end + + self.force = Vmul(self.force,self.life + self.lifeSpread) + + --// global data + glMultiTexCoord(3, self.speedExp, self.sizeExp, self.rotExp, self.ncolors) + glMultiTexCoord(4, self.force[1], self.force[2], self.force[3], self.forceExp) + + local posX,posY,posZ = self.pos[1],self.pos[2],self.pos[3] + + local ev = self.emitVector + local emitMatrix = CreateEmitMatrix3x3(ev[1],ev[2],ev[3]) + + self.maxSpawnRadius = 0 + for i=1,self.count do + local life,delay, x,y,z, dx,dy,dz, sizeStart,sizeEnd, rotStart,rotEnd = self:CreateParticleAttributes(up,right,forward, partposCode, i-1) + dx,dy,dz = MultMatrix3x3(emitMatrix,dx,dy,dz) + DrawParticleForDList(life, delay, + x+posX,y+posY,z+posZ, -- relative start pos + dx,dy,dz, -- speed vector + sizeStart,sizeEnd, + rotStart,rotEnd) + local spawnDist = x*x + y*y + z*z + if (spawnDist>self.maxSpawnRadius) then self.maxSpawnRadius=spawnDist end + end + self.maxSpawnRadius = sqrt(self.maxSpawnRadius) + + glMultiTexCoord(2, 0,0,0,1) + glMultiTexCoord(3, 0,0,0,1) + glMultiTexCoord(4, 0,0,0,1) +end + +local function CreateDList(self) + --// FIXME: compress each color into 32bit register of a MultiTexCoord, so each MultiTexCoord can hold 4 rgba packs! + for i=1,min(self.ncolors+1,16) do + local color = self.colormap[i] + glUniform( colormapUniform[i] , color[1], color[2], color[3], color[4] ) + end + + glBeginEnd(GL_QUADS,InitializeParticles,self) +end + +function SimpleParticles2:CreateParticle() + self.ncolors = #self.colormap-1 + + self.dlist = glCreateList(CreateDList,self) + + self.frame = 0 + self.firstGameFrame = thisGameFrame + self.dieGameFrame = self.firstGameFrame + self.life + self.lifeSpread + self.delaySpread + + --// visibility check vars + self.radius = self.size + self.sizeSpread + self.maxSpawnRadius + 100 + self.maxSpeed = self.speed + abs(self.speedSpread) + self.forceStrength = Vlength(self.force) + self.sphereGrowth = self.forceStrength + self.sizeGrowth + self.maxSpeed +end + +function SimpleParticles2:Destroy() + gl.DeleteList(self.dlist) + --gl.DeleteTexture(self.texture) +end + +function SimpleParticles2:Visible() + local radius = self.radius + + self.frame*self.sphereGrowth --FIXME: frame is only updated on Update() + local posX,posY,posZ = self.pos[1],self.pos[2],self.pos[3] + local losState + if (self.unit and not self.worldspace) then + losState = GetUnitLosState(self.unit) + local ux,uy,uz = spGetUnitViewPosition(self.unit) + posX,posY,posZ = posX+ux,posY+uy,posZ+uz + radius = radius + spGetUnitRadius(self.unit) + elseif (self.projectile and not self.worldspace) then + local px,py,pz = spGetProjectilePosition(self.projectile) + posX,posY,posZ = posX+px,posY+py,posZ+pz + end + if (losState==nil) then + if (self.radar) then + losState = IsPosInRadar(posX,posY,posZ) + end + if ((not losState) and self.airLos) then + losState = IsPosInAirLos(posX,posY,posZ) + end + if ((not losState) and self.los) then + losState = IsPosInLos(posX,posY,posZ) + end + end + return (losState)and(spIsSphereInView(posX,posY,posZ,radius)) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local setmetatable = setmetatable + +function SimpleParticles2.Create(Options) + local newObject = table.merge(SimpleParticles2.Default, Options) + setmetatable(newObject,SimpleParticles2) --// make handle lookup + newObject:CreateParticle() + return newObject +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return SimpleParticles2 \ No newline at end of file diff --git a/lups/particleclasses/spheredistortion.lua b/lups/particleclasses/spheredistortion.lua new file mode 100644 index 00000000000..7db11e649cf --- /dev/null +++ b/lups/particleclasses/spheredistortion.lua @@ -0,0 +1,216 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local SphereDistortion = {} +SphereDistortion.__index = SphereDistortion + +local warpShader +local screenLoc, radiusLoc, strengthLoc, centerLoc + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SphereDistortion.GetInfo() + return { + name = "SphereDistortion", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "", + + layer = 1, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = true, + shader = true, + distortion= true, + intel = 0, + } +end + +SphereDistortion.Default = { + layer = 1, + worldspace = true, + + life = 20, + pos = {0,0,0}, + growth = 4.5, + strength = 0.25, + + repeatEffect = false, + dieGameFrame = math.huge +} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local glUniform = gl.Uniform +local glUseShader = gl.UseShader +local spWorldToScreenCoords = Spring.WorldToScreenCoords + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SphereDistortion:BeginDrawDistortion() + glUseShader(warpShader) + glUniform(screenLoc, 1/vsx,1/vsy ) +end + +function SphereDistortion:EndDrawDistortion() + glUseShader(0) +end + + +local function DrawQuad(x,y,z) + gl.TexCoord(-1,1) + gl.Vertex(x,y,z) + gl.TexCoord(1,1) + gl.Vertex(x,y,z) + gl.TexCoord(1,-1) + gl.Vertex(x,y,z) + gl.TexCoord(-1,-1) + gl.Vertex(x,y,z) +end + +function SphereDistortion:DrawDistortion() + local pos = self.pos + local x,y,z = pos[1],pos[2],pos[3] + local cx,cy = spWorldToScreenCoords(x,y,z) + glUniform(radiusLoc, self.radius ) + glUniform(strengthLoc, self.strength ) + glUniform(centerLoc, cx,cy ) + + gl.BeginEnd(GL.QUADS,DrawQuad,x,y,z) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SphereDistortion.Initialize() + warpShader = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + uniform vec2 center; + uniform float radius; + uniform vec2 screenInverse; + + varying vec2 texCoord; + + void main() + { + gl_Position = gl_ModelViewMatrix * gl_Vertex; + gl_Position.xy += gl_MultiTexCoord0.xy * radius; + gl_Position = gl_ProjectionMatrix * gl_Position; + texCoord = gl_MultiTexCoord0.st; + } + ]], + fragment = [[ + #version 150 compatibility + uniform vec2 center; + uniform float strength; + uniform vec2 screenInverse; + + varying vec2 texCoord; + + float p1 = gl_ProjectionMatrix[2][2]; + float p2 = gl_ProjectionMatrix[2][3]; + + float ConvertZtoEye(float z) + { + return p2/(z*2.0-1.0+p1); + } + + float ConvertEyeToZ(float d) + { + return 0.5-0.5*p1+(1.0/(2.0*d))*p2; + } + + void main(void) + { + float dist = length(texCoord); + if (dist>1.0) { + discard; + }else{ + float eyeDepth = ConvertZtoEye(gl_FragCoord.z); + eyeDepth -= cos(asin(dist))*30.0; + gl_FragDepth = ConvertEyeToZ(eyeDepth); + + vec2 d = gl_FragCoord.xy - center; + float distortion = smoothstep(1.0,0.0,dist)*strength; + vec2 noiseVec = (d/dist)*screenInverse*distortion; + gl_FragColor.xyw = vec3(noiseVec,gl_FragCoord.z); + + //float distortion = pow(dist, 1.0/4.0)-dist; + //float distortion = exp( -0.5*( pow(-dist*6.0+2.5,2.0) ) )*0.25; + //float distortion = tanh(dist*3.0)-dist; + //float distortion = smoothstep(0.0,1.0,dist)-dist; + } + } + ]], + uniform = { + screenInverse = {1/1280,1/1024}, + strength = 0.15, + } + }) + + if (warpShader == nil) then + print(PRIO_MAJOR,"LUPS->SphereDistortion: critical shader error: "..gl.GetShaderLog()) + return false + end + + screenLoc = gl.GetUniformLocation(warpShader, 'screenInverse') + strengthLoc = gl.GetUniformLocation(warpShader, 'strength') + radiusLoc = gl.GetUniformLocation(warpShader, 'radius') + centerLoc = gl.GetUniformLocation(warpShader, 'center') +end + +function SphereDistortion.Finalize() + if (gl.DeleteShader) then + gl.DeleteShader(warpShader) + end +end + +function SphereDistortion.ViewResize() + gl.UseShader(warpShader) + gl.Uniform(screenLoc,1/vsx,1/vsy) + gl.UseShader(0) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function SphereDistortion:Update() + self.radius = self.radius + self.growth +end + +-- used if repeatEffect=true; +function SphereDistortion:ReInitialize() + self.radius = 0 + + self.dieGameFrame = self.dieGameFrame + self.life +end + +function SphereDistortion:CreateParticle() + self.radius = 0 + + self.startGameFrame = thisGameFrame + self.dieGameFrame = self.startGameFrame + self.life +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local setmetatable = setmetatable + +function SphereDistortion.Create(Options) + local newObject = table.merge(SphereDistortion.Default, Options) + setmetatable(newObject,SphereDistortion) -- make handle lookup + newObject:CreateParticle() + return newObject +end + +function SphereDistortion:Destroy() +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return SphereDistortion \ No newline at end of file diff --git a/lups/particleclasses/unitcloaker.lua b/lups/particleclasses/unitcloaker.lua new file mode 100644 index 00000000000..d66ee6ca415 --- /dev/null +++ b/lups/particleclasses/unitcloaker.lua @@ -0,0 +1,301 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local UnitCloaker = {} +UnitCloaker.__index = UnitCloaker + +local warpShader +local tex +local cameraUniform,lightUniform +local isS3oUniform, lifeUniform + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function UnitCloaker.GetInfo() + return { + name = "UnitCloaker", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "", + + layer = 16, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = true, + shader = true, + rtt = false, + ctt = true, + intel = 0, + } +end + +UnitCloaker.Default = { + layer = 16, + worldspace = true, + + inverse = false, + life = math.huge, + unit = -1, + unitDefID = -1, + + repeatEffect = false, + dieGameFrame = math.huge +} + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local loadedS3oTexture = -1 + +function UnitCloaker:BeginDraw() + gl.Culling(GL.FRONT) + gl.Culling(true) + gl.DepthMask(true) + + gl.UseShader(warpShader) + local x,y,z = Spring.GetCameraPosition() + gl.Uniform(cameraUniform,x,y,z) + + x,y,z = gl.GetSun( "pos" ) + gl.Light(0,GL.POSITION,x,y,z) + + gl.Uniform(lightUniform,x,y,z) + + x,y,z = gl.GetSun( "ambient" ,"unit") + gl.Light(0,GL.AMBIENT,x,y,z) + x,y,z = gl.GetSun( "diffuse" ,"unit") + gl.Light(0,GL.DIFFUSE,x,y,z) + + --gl.Texture(1,'bitmaps/cdet.bmp') + --gl.Texture(1,'bitmaps/clouddetail.bmp') + --gl.Texture(1,'bitmaps/GPL/Lups/perlin_noise.jpg') + gl.Texture(2,'bitmaps/GPL/Lups/mynoise2.png') + --gl.Texture(3,'$specular') -- disable spec while it is broken in engine 941 cause of the 3dtextures shenanigans + gl.Texture(4,'$reflection') + + gl.MatrixMode(GL.PROJECTION) + gl.PushMatrix() + gl.MultMatrix("camera") + gl.MatrixMode(GL.MODELVIEW) + gl.PushMatrix() + gl.LoadIdentity() +end + +function UnitCloaker:EndDraw() + gl.MatrixMode(GL.PROJECTION) + gl.PopMatrix() + gl.MatrixMode(GL.MODELVIEW) + gl.PopMatrix() + + gl.Culling(GL.BACK) + gl.Culling(false) + gl.DepthMask(false) --"BK OpenGL state resets", was true + + gl.UseShader(0) + + gl.Texture(0,false) + gl.Texture(1,false) + gl.Texture(2,false) + gl.Texture(3,false) + gl.Texture(4,false) + + gl.Color(1,1,1,1) + + loadedS3oTexture = -1 +end + +function UnitCloaker:Draw() + local udid = 0 + if (self.isS3o) then + udid = self.unitDefID + end + + if (udid~=loadedS3oTexture) then + gl.Texture(0, "%" .. udid .. ":0") + gl.Texture(1, "%" .. udid .. ":1") + loadedS3oTexture = udid + end + + if (self.inverse) then + gl.Uniform( lifeUniform, 1-(thisGameFrame-self.firstGameFrame)/self.life ) + else + gl.Uniform( lifeUniform, (thisGameFrame-self.firstGameFrame)/self.life ) + end + + gl.Color(Spring.GetTeamColor(self.team)) + + if (self.isS3o) then + gl.Culling(GL.BACK) + gl.Unit(self.unit,true,-1) + gl.Culling(GL.FRONT) + else + gl.Unit(self.unit,true,-1) + end +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function UnitCloaker.Initialize() + warpShader = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + uniform vec3 cameraPos; + uniform vec3 lightPos; + uniform float life; + + varying float opac; + varying vec4 texCoord; + varying vec3 normal; + varying vec3 viewdir; + + //const vec4 ObjectPlaneS = vec4(0.002, 0.002, 0.0, 0.3); + //const vec4 ObjectPlaneT = vec4(0.0, 0.002, 0.002, 0.3); + + const vec4 ObjectPlaneS = vec4(0.005, 0.005, 0.000, 0.0); + const vec4 ObjectPlaneT = vec4(0.000, 0.005, 0.005, 0.0); + + void main(void) + { + texCoord.st = gl_MultiTexCoord0.st; + texCoord.p = dot( gl_Vertex, ObjectPlaneS ); + texCoord.q = dot( gl_Vertex, ObjectPlaneT );// + life*0.25; + normal = gl_NormalMatrix * gl_Normal; + viewdir = (gl_ModelViewMatrix * gl_Vertex).xyz - cameraPos; + + gl_FrontColor = gl_Color; + + float a = max( dot(normal, lightPos), 0.0); + gl_FrontSecondaryColor.rgb = a * gl_LightSource[0].diffuse.rgb + gl_LightSource[0].ambient.rgb; + + opac = dot(normalize(normal), normalize(viewdir)); + opac = 1.0 - abs(opac); + opac = pow(opac, 5.0); + + gl_Position = ftransform(); + } + ]], + fragment = [[ + #version 150 compatibility + uniform sampler2D texture1; + uniform sampler2D texture2; + uniform sampler2D noiseMap; + uniform samplerCube specularMap; + uniform samplerCube reflectMap; + uniform float life; + + varying float opac; + varying vec4 texCoord; + varying vec3 normal; + varying vec3 viewdir; + + void main(void) + { + vec4 noise = texture2D(noiseMap, texCoord.pq); + + //if (noise.r < life) { + // discard; + //} + + gl_FragColor = texture2D(texture1, texCoord.st); + gl_FragColor.rgb = mix(gl_FragColor.rgb, gl_Color.rgb, gl_FragColor.a); + + vec4 extraColor = texture2D(texture2, texCoord.st); + + vec3 reflectDir = reflect(viewdir, normalize(normal)); + + //vec3 spec = textureCube(specularMap, reflectDir).rgb * 4.0 * extraColor.g; // disable spec while it is broken in engine 941 cause of the 3dtextures shenanigans + vec3 refl = textureCube(reflectMap, reflectDir).rgb; + refl = mix(gl_SecondaryColor.rgb, refl, extraColor.g); + refl += extraColor.r; + + gl_FragColor.rgb = gl_FragColor.rgb * refl;// + spec; + gl_FragColor.a = extraColor.a; + + if (life*1.4>noise.r) { + float d = life*1.4-noise.r; + gl_FragColor.a *= smoothstep(0.4,0.0,d); + } + gl_FragColor.rgb += vec3(life*0.25); + } + ]], + uniform = { + isS3o = false, + }, + uniformInt = { + texture1 = 0, + texture2 = 1, + noiseMap = 2, + specularMap = 3, + reflectMap = 4, + }, + uniformFloat = { + life = 1, + } + }) + + if (warpShader == nil) then + print(PRIO_MAJOR,"LUPS->UnitCloaker: critical shader error: "..gl.GetShaderLog()) + return false + end + + cameraUniform = gl.GetUniformLocation(warpShader, 'cameraPos') + lightUniform = gl.GetUniformLocation(warpShader, 'lightPos') + lifeUniform = gl.GetUniformLocation(warpShader, 'life') +end + +function UnitCloaker.Finalize() + if (gl.DeleteShader) then + gl.DeleteShader(warpShader) + end +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local unitIsS3o = {} +for unitDefID, ud in pairs(UnitDefs) do + local name = (ud.model and ud.model.name) or ud.modelname + unitIsS3o[unitDefID] = ((name:lower():find("s3o") or name:lower():find("obj") or name:lower():find("dae")) and true) +end + +-- used if repeatEffect=true; +function UnitCloaker:ReInitialize() + self.dieGameFrame = self.dieGameFrame + self.life +end + +function UnitCloaker:CreateParticle() + self.isS3o = unitIsS3o[self.unitDefID] + self.firstGameFrame = thisGameFrame + self.dieGameFrame = self.firstGameFrame + self.life +end + +function UnitCloaker:Visible() + if self.allyTeam == LocalAllyTeamID then + return Spring.IsUnitVisible(self.unit, 0, true) -- Don't draw for icons + end + + local _, specFullView = Spring.GetSpectatingState() + local losState = Spring.GetUnitLosState(self.unit, LocalAllyTeamID) or {} + return specFullView or (losState and losState.los) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- +function UnitCloaker.Create(Options) + + SetUnitLuaDraw(Options.unit,true) + local newObject = table.merge(UnitCloaker.Default, Options) + setmetatable(newObject,UnitCloaker) -- make handle lookup + newObject:CreateParticle() + return newObject +end + +function UnitCloaker:Destroy() + SetUnitLuaDraw(self.unit,false) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return UnitCloaker diff --git a/lups/particleclasses/unitjitter.lua b/lups/particleclasses/unitjitter.lua new file mode 100644 index 00000000000..18e3fae86a4 --- /dev/null +++ b/lups/particleclasses/unitjitter.lua @@ -0,0 +1,310 @@ +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local UnitJitter = {} +UnitJitter.__index = UnitJitter + +local warpShader, warpShader2 +local tex +local timerUniform +local lastCullFace = GL.FRONT + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function UnitJitter.GetInfo() + return { + name = "UnitJitter", + backup = "", --// backup class, if this class doesn't work (old cards,ati's,etc.) + desc = "", + + layer = 15, --// extreme simply z-ordering :x + + --// gfx requirement + fbo = true, + shader = true, + distortion= true, + intel = 0, + } +end + +UnitJitter.Default = { + layer = 15, + worldspace = true, + + inverse = false, + life = math.huge, + unit = -1, + unitDefID = 0, + team = -1, + allyTeam = -1, + + repeatEffect = false, + dieGameFrame = math.huge +} + + +local noiseTexture = 'bitmaps/GPL/Lups/perlin_noise.jpg' + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local GL_BACK = GL.BACK +local GL_FRONT = GL.FRONT +local glCulling = gl.Culling +local glUnit = gl.Unit +local glUniform = gl.Uniform +local glColor = gl.Color +local glMultiTexCoord = gl.MultiTexCoord + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function UnitJitter:BeginDrawDistortion() + gl.UseShader(warpShader) + local drawTime = (Spring.GetGameFrame() + Spring.GetFrameTimeOffset()) * 0.003333333 + gl.Uniform(timerUniform, drawTime - 0.5 ) + --gl.PolygonOffset(0,-1) + lastCullFace = GL_FRONT + gl.Culling(GL_FRONT) + + gl.Texture(0,noiseTexture) + + gl.PushAttrib(GL.DEPTH_BUFFER_BIT) + gl.DepthTest(true) + gl.DepthMask(true) +end + +function UnitJitter:EndDrawDistortion() + gl.PopAttrib() + gl.UseShader(0) + gl.Texture(0,false) + gl.PolygonOffset(false) + gl.Culling(GL_BACK) + gl.Culling(false) +end + +function UnitJitter:DrawDistortion() + if (self.inverse) then + glMultiTexCoord(2, (thisGameFrame-self.firstGameFrame)/self.life ) + else + glMultiTexCoord(2, 1-((thisGameFrame-self.firstGameFrame)/self.life) ) + end + + if (self.isS3o) then + if (lastCullFace~=GL_BACK) then + lastCullFace = GL_BACK + glCulling(GL_BACK) + end + else + if (lastCullFace~=GL_FRONT) then + lastCullFace = GL_FRONT + glCulling(GL_FRONT) + end + end + + glUnit(self.unit,true,-1) +end + + +function UnitJitter:BeginDraw() + gl.UseShader(warpShader2) + gl.Blending(GL.ONE,GL.ONE) + lastCullFace = GL_FRONT + gl.Culling(GL_FRONT) + gl.Texture(0,noiseTexture) + gl.PushAttrib(GL.DEPTH_BUFFER_BIT) + gl.DepthTest(true) + gl.DepthMask(true) +end + +function UnitJitter:EndDraw() + gl.PopAttrib() + gl.UseShader(0) + gl.Texture(0,false) + gl.Blending(GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA) + gl.PolygonOffset(false) + gl.Culling(GL_BACK) + gl.Culling(false) + gl.Color(1,1,1,1) + gl.DepthMask(false) --"BK OpenGL state resets", wasn't set here at all +end + +function UnitJitter:Draw() + if (self.inverse) then + glMultiTexCoord(2, (thisGameFrame-self.firstGameFrame)/self.life ) + else + glMultiTexCoord(2, 1-((thisGameFrame-self.firstGameFrame)/self.life) ) + end + + if (self.isS3o) then + if (lastCullFace~=GL_BACK) then + lastCullFace = GL_BACK + glCulling(GL_BACK) + end + else + if (lastCullFace~=GL_FRONT) then + lastCullFace = GL_FRONT + glCulling(GL_FRONT) + end + end + + glColor(self.teamColor) + glUnit(self.unit,true,-1) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function UnitJitter.Initialize() + warpShader = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + uniform float timer; + + varying vec3 texCoord; + + const vec4 ObjectPlaneS = vec4(0.005, 0.005, 0.000, 0.0); + const vec4 ObjectPlaneT = vec4(0.000, 0.005, 0.005, 0.0); + + void main() + { + gl_Position = ftransform(); + texCoord.s = dot( gl_Vertex, ObjectPlaneS ) + timer; + texCoord.t = dot( gl_Vertex, ObjectPlaneT ) + timer; + texCoord.z = gl_MultiTexCoord2.x; //life + texCoord.z *= abs( dot(normalize(gl_NormalMatrix * gl_Normal), normalize(vec3(gl_ModelViewMatrix * gl_Vertex))) ); + texCoord.z *= 0.015; + } + ]], + fragment = [[ + #version 150 compatibility + uniform sampler2D noiseMap; + + varying vec3 texCoord; + + #define life texCoord.z + + void main(void) + { + vec2 noiseVec; + noiseVec = texture2D(noiseMap, texCoord.st).rg; + noiseVec = (noiseVec - 0.50) * life; + + gl_FragColor = vec4(noiseVec,0.0,gl_FragCoord.z); + } + ]], + uniformInt = { + noiseMap = 0, + }, + uniformFloat = { + timer = 0, + } + }) + + if (warpShader == nil) then + print(PRIO_MAJOR,"LUPS->UnitJitter: critical shader error: "..gl.GetShaderLog()) + return false + end + + timerUniform = gl.GetUniformLocation(warpShader, 'timer') + + warpShader2 = gl.CreateShader({ + vertex = [[ + #version 150 compatibility + void main() + { + gl_Position = ftransform(); + float opac = 1.0-abs( dot(normalize(gl_NormalMatrix * gl_Normal), normalize(vec3(gl_ModelViewMatrix * gl_Vertex))) ); + float life = gl_MultiTexCoord2.x; //life + + gl_FrontColor = mix( gl_Color * (opac+0.15), + vec4( opac*opac ), + opac * 0.5) * life * 0.75; + } + ]], + fragment = [[ + #version 150 compatibility + void main(void) + { + gl_FragColor = gl_Color; + } + ]], + uniformFloat = { + life = 1, + } + }) + + if (warpShader2 == nil) then + print(PRIO_MAJOR,"LUPS->UnitJitter: critical shader2 error: "..gl.GetShaderLog()) + return false + end +end + +function UnitJitter.Finalize() + if (gl.DeleteShader) then + gl.DeleteShader(warpShader) + end +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +local spGetTeamColor = Spring.GetTeamColor + +-- used if repeatEffect=true; +function UnitJitter:ReInitialize() + self.dieGameFrame = self.dieGameFrame + self.life +end + +local unitIsS3o = {} +for unitDefID, ud in pairs(UnitDefs) do + local name = (ud.model and ud.model.name) or ud.modelname + unitIsS3o[unitDefID] = ((name:lower():find("s3o") or name:lower():find("obj") or name:lower():find("dae")) and true) +end + +function UnitJitter:CreateParticle() + self.isS3o = unitIsS3o[self.unitDefID] + self.teamColor = {spGetTeamColor(self.team)} + self.firstGameFrame = thisGameFrame + self.dieGameFrame = self.firstGameFrame + self.life +end + +function UnitJitter:Visible() + if LocalAllyTeamID == -2 -- spec full view + or LocalAllyTeamID == self.allyTeam then + return Spring.IsUnitVisible(self.unit, 0, true) -- Don't draw for icons + end + + local inLos = true + if (self.enemyHit) then + local x,y,z = Spring.GetUnitPosition(self.unit) + if (x==nil) then return false end + inLos = select(2, Spring.GetPositionLosState(x,y,z, LocalAllyTeamID)) + else + local losState = Spring.GetUnitLosState(self.unit, LocalAllyTeamID) or {} + inLos = (inLos)and(not losState.los) + end + return (inLos)and(Spring.IsUnitVisible(self.unit, 0, true)) -- Don't draw for icons +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +function UnitJitter.Create(Options) + SetUnitLuaDraw(Options.unit,true) + + local newObject = table.merge(UnitJitter.Default, Options) + setmetatable(newObject,UnitJitter) -- make handle lookup + newObject:CreateParticle() + return newObject +end + +function UnitJitter:Destroy() + SetUnitLuaDraw(self.unit,false) +end + +----------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------- + +return UnitJitter diff --git a/modoptions.lua b/modoptions.lua index 81cdcc891e1..32c71cb9ea5 100644 --- a/modoptions.lua +++ b/modoptions.lua @@ -846,14 +846,14 @@ local options = { type = "separator", }, - { - key = "xmas", - name = "Holiday decorations", - desc = "Various holiday decorations", - type = "bool", - def = true, - section = "options_extra", - }, + --{ + -- key = "xmas", + -- name = "Holiday decorations", + -- desc = "Various holiday decorations", + -- type = "bool", + -- def = true, + -- section = "options_extra", + --}, -- { -- key = "unithats", @@ -1250,10 +1250,10 @@ local options = { -- Hidden Tests { key = "shieldsrework", - name = "Shields Rework", - desc = "Shields block all projectiles. Overkill damage is blocked once before reaching 0% charge. Shields are disabled for a few seconds upon reaching 0%.", + name = "Shields Rework v2.0", + desc = "Shields block plasma. Overkill damage is absorbed. Shield is down for the duration required to recharge the overkill damage at normal energy cost.", type = "bool", - hidden = true, + hidden = false, section = "options_experimental", def = false, }, @@ -1334,7 +1334,7 @@ local options = { name = "Proposed Unit Reworks", desc = "Modoption used to test and balance unit reworks that are being considered for the base game.", type = "bool", - hidden = true, + --hidden = true, section = "options_experimental", def = false, }, @@ -1517,6 +1517,45 @@ local options = { type = "separator", }, + { + key = "sub_header", + name = "-- AI Cheats", + desc = "", + section = "options_cheats", + type = "subheader", + def = true, + }, + + { + key = "dynamiccheats", + name = "Dynamic Cheats", + desc = "Cheats marked as [Dynamic] react to the game state and are suspended when the opposition is losing", + type = "bool", + def = true, + section = "options_cheats", + }, + + { + key = "nowasting", + name = "No Resource Wasting", + desc = "[Dynamic] Increases Buildpower for the affected team's builders and factories to prevent resource", + type = "list", + def = "default", + section = "options_cheats", + items = { + { key= "default", name= "Default", desc="Disabled, unless other features use it"}, + { key= "disabled", name= "Disabled", desc="Disabled"}, + { key= "ai", name= "AI Only", desc="All AI except Scavengers and Raptors"}, + { key= "all", name= "All", desc="AI and Player Teams both excluding Scavengers and Raptors" }, + } + }, + + { + key = "sub_header", + section = "options_cheats", + type = "separator", + }, + { key = "sub_header", name = "-- Starting Resources", @@ -1782,6 +1821,7 @@ local options = { type = "list", section = "options_cheats", def = "unchanged", + hidden = true, items = { { key = "unchanged", name = "Unchanged", desc = "Unchanged" }, { key = "absorbplasma", name = "Absorb Plasma", desc = "Collisions Disabled" }, diff --git a/modules/i18n/i18n.lua b/modules/i18n/i18n.lua index 4905398fab8..bf3bb640f36 100644 --- a/modules/i18n/i18n.lua +++ b/modules/i18n/i18n.lua @@ -2,7 +2,7 @@ local currentDirectory = "modules/i18n/" I18N_PATH = currentDirectory .. "i18nlib/i18n/" -- I18N_PATH is expected to be global inside the i18n module local i18n = VFS.Include(I18N_PATH .. "init.lua", nil, VFS.ZIP) -local asianFont = 'SourceHanSans-Regular.ttc' +local asianFont = 'fallbacks/SourceHanSans-Regular.ttc' local translationDirs = VFS.SubDirs('language') -- Construct a map of @@ -59,6 +59,8 @@ function i18n.setLanguage(language) ensureLanguageLoaded(language) i18n.setLocale(language) + if gl.AddFallbackFont then return end + -- Font substitution is handled at the OS level, meaning we cannot control which fallback font is used -- Manually switching fonts is requred until Spring handles font substitution at the engine level -- LuaUI reload must be invoked for widgets to refresh all their font objects diff --git a/modules/lava.lua b/modules/lava.lua new file mode 100644 index 00000000000..1646673d02d --- /dev/null +++ b/modules/lava.lua @@ -0,0 +1,239 @@ +local mapName = Game.mapName +Spring.Echo("Lava Mapname", mapName) + +local MAP_CONFIG_PATH = "mapconfig/lava.lua" +local GAME_CONFIG_DIR = "common/configs/LavaMaps/" + +local voidWaterMap = false + +local success, mapinfo = pcall(VFS.Include, "mapinfo.lua") -- load mapinfo.lua confs +if success or mapinfo ~= nil then + voidWaterMap = mapinfo.voidwater +end + +local isLavaMap = false + +---------------------------------------- +-- Defaults: + +local diffuseEmitTex = "LuaUI/images/lava/lava2_diffuseemit.dds" +local normalHeightTex = "LuaUI/images/lava/lava2_normalheight.dds" + +local level = 1 -- pre-game lava level +local grow = 0.25 -- initial lava grow speed +local damage = 100 -- damage per second or health proportion (0-1) +local damageFeatures = false -- Lava also damages features when set, if set to float, it's proportional damage per second (0 to 1), if set to true sets default of 0.1 +local uvScale = 2.0 -- How many times to tile the lava texture across the entire map +local colorCorrection = "vec3(1.0, 1.0, 1.0)" -- final colorcorrection on all lava + shore coloring +local losDarkness = 0.5 -- how much to darken the out-of-los areas of the lava plane +local swirlFreq = 0.025 -- How fast the main lava texture swirls around default 0.025 +local swirlAmp = 0.003 -- How much the main lava texture is swirled around default 0.003 +local specularExp = 64.0 -- the specular exponent of the lava plane +local shadowStrength = 0.4 -- how much light a shadowed fragment can recieve +local coastWidth = 25.0 -- how wide the coast of the lava should be +local coastColor = "vec3(2.0, 0.5, 0.0)" -- the color of the lava coast +local coastLightBoost = 0.6 -- how much extra brightness should coastal areas get + +local parallaxDepth = 16.0 -- set to >0 to enable, how deep the parallax effect is +local parallaxOffset = 0.5 -- center of the parallax plane, from 0.0 (up) to 1.0 (down) + +local fogColor = "vec3(2.0, 0.5, 0.0)" -- the color of the fog light +local fogFactor = 0.06 -- how dense the fog is +local fogHeight = 20 -- how high the fog is above the lava plane +local fogAbove = 1.0 -- the multiplier for how much fog should be above lava fragments, ~0.2 means the lava itself gets hardly any fog, while 2.0 would mean the lava gets a lot of extra fog +local fogEnabled = true --if fog above lava adds light / is enabled +local fogDistortion = 4.0 -- lower numbers are higher distortion amounts + +local tideAmplitude = 2 -- how much lava should rise up-down on static level +local tidePeriod = 200 -- how much time between live rise up-down + +local effectDamage = "lavadamage" -- damage ceg effect +local effectBurst = "lavasplash" -- burst ceg effect, set to false to disable +-- sound arrays: always rows with {soundid, minVolume, maxVolume} +local effectBurstSounds = { {"lavaburst1", 80, 100}, {"lavaburst2", 80, 100} } -- array of sounds to use for bursts, false or empty array will disable sounds +local ambientSounds = { {"lavabubbleshort1", 25, 65}, -- ambient sounds, set ambientSounds = false to disable + {"lavabubbleshort2", 25, 65}, + {"lavarumbleshort1", 20, 40}, + {"lavarumbleshort2", 20, 40}, + {"lavarumbleshort3", 20, 40} } + +--- Tide animation scenes +--- each row is: { HeightLevel, Speed, Delay for next TideRhym in seconds } +--- first element needs to be -1 than pre-game lava level when present +local tideRhym = {} + + +---------------------------------------- +-- Helper methods + +local function trimMapVersion(mapName) + -- Trims version from the end of the map name. + -- find last space before version (version is numbers with dots, possibly preceded by v or V) + local lastSpace = mapName:match'^.*()\ [vV]*[%d%.]+' + if not lastSpace then return mapName end + return string.sub(mapName, 1, lastSpace - 1) +end + +local function gameConfigPath(mapName) + return GAME_CONFIG_DIR .. mapName .. ".lua" +end + +local function getLavaConfig(mapName) + if voidWaterMap then return end + -- Get lava config for map. + -- mapConfig has preference over gameConfig, unless game sets 'overrideMap' + local gameConfig, mapConfig + if mapName then + -- Look for full name (with version), and otherwise try with trimmed version. + local mapNameNoVersion = trimMapVersion(mapName) + if VFS.FileExists(gameConfigPath(mapName)) then + gameConfig = VFS.Include(gameConfigPath(mapName)) + Spring.Log('Lava', LOG.INFO, "Loaded map config for", mapName) + elseif mapName ~= mapNameNoVersion and VFS.FileExists(gameConfigPath(mapNameNoVersion)) then + gameConfig = VFS.Include(gameConfigPath(mapNameNoVersion)) + Spring.Log('Lava', LOG.INFO, "Loaded map config for", mapNameNoVersion) + end + end + if VFS.FileExists(MAP_CONFIG_PATH) then + mapConfig = VFS.Include(MAP_CONFIG_PATH) + Spring.Log('Lava', LOG.INFO, "Loaded map config for", mapNameNoVersion) + end + if mapConfig and gameConfig and gameConfig.overrideMap then + -- allow gameconfig to override map config when 'overrideMap' is set + mapConfig = gameConfig + Spring.Log('Lava', LOG.INFO, "Game config overrides map") + end + return mapConfig or gameConfig +end + +local function applyConfig(lavaConfig) + isLavaMap = true + + diffuseEmitTex = lavaConfig.diffuseEmitTex or diffuseEmitTex + normalHeightTex = lavaConfig.normalHeightTex or normalHeightTex + + level = lavaConfig.level or level + grow = lavaConfig.grow or grow + damage = lavaConfig.damage or damage + if lavaConfig.damageFeatures ~= nil then + damageFeatures = lavaConfig.damageFeatures + end + uvScale = lavaConfig.uvScale or uvScale + colorCorrection = lavaConfig.colorCorrection or colorCorrection + losDarkness = lavaConfig.losDarkness or losDarkness + swirlFreq = lavaConfig.swirlFreq or swirlFreq + swirlAmp = lavaConfig.swirlAmp or swirlAmp + specularExp = lavaConfig.specularExp or specularExp + shadowStrength = lavaConfig.shadowStrength or shadowStrength + coastWidth = lavaConfig.coastWidth or coastWidth + coastColor = lavaConfig.coastColor or coastColor + coastLightBoost = lavaConfig.coastLightBoost or coastLightBoost + + parallaxDepth = lavaConfig.parallaxDepth or parallaxDepth + parallaxOffset = lavaConfig.parallaxOffset or parallaxOffset + + fogColor = lavaConfig.fogColor or fogColor + fogFactor = lavaConfig.forFactor or fogFactor + fogHeight = lavaConfig.fogHeight or fogHeight + fogAbove = lavaConfig.fogAbove or fogAbove + if lavaConfig.fogEnabled ~= nil then + fogEnabled = lavaConfig.fogEnabled + end + fogDistortion = lavaConfig.fogDistortion or fogDistortion + + tideAmplitude = lavaConfig.tideAmplitude or tideAmplitude + tidePeriod = lavaConfig.tidePeriod or tidePeriod + tideRhym = lavaConfig.tideRhym or tideRhym + effectDamage = lavaConfig.effectDamage or effectDamage + if lavaConfig.effectBurst ~= nil then + effectBurst = lavaConfig.effectBurst + end + effectBurstSounds = lavaConfig.effectBurstSounds or effectBurstSounds + if lavaConfig.ambientSounds ~= nil then + ambientSounds = lavaConfig.ambientSounds + end +end + + +---------------------------------------- +-- Process config + +local mapLavaConfig = getLavaConfig(mapName) + +if mapLavaConfig and (not voidWaterMap) then + applyConfig(mapLavaConfig) + +elseif Game.waterDamage > 0 and (not voidWaterMap) then -- Waterdamagemaps - keep at the very bottom + isLavaMap = true + grow = 0 + effectBurst = false + level = 1 + colorCorrection = "vec3(0.15, 1.0, 0.45)" + --coastColor = "vec3(0.6, 0.7, 0.03)" + coastLightBoost = 0.5 + coastWidth = 16.0 -- how wide the coast of the lava should be + fogColor = "vec3(1.60, 0.8, 0.3)" + --coastWidth = 30.0 + lavaParallaxDepth = 24.0 -- set to >0 to enable, how deep the parallax effect is + lavaParallaxOffset = 0.15 -- center of the parallax plane, from 0.0 (up) to 1.0 (down) + swirlFreq = 0.008 + swirlAmp = 0.01 + uvScale = 3 + specularExp = 12.0 + tideAmplitude = 3 + tidePeriod = 40 + fogFactor = 0.1 + fogHeight = 20 + fogAbove = 0.1 + fogDistortion = 1 + tideRhym = { { 4, 0.05, 5*6000 } } + --tideRhym = { { 1, 0.25, 5*6000 } } + +elseif Spring.GetModOptions().map_waterislava and (not voidWaterMap) then + isLavaMap = true + level = 4 + tideRhym = { { 4, 0.05, 5*6000 } } +end + + +return { + isLavaMap = isLavaMap, + + diffuseEmitTex = diffuseEmitTex, + normalHeightTex = normalHeightTex, + + level = level, + grow = grow, + damage = damage, + damageFeatures = damageFeatures, + uvScale = uvScale, + colorCorrection = colorCorrection, + losDarkness = losDarkness, + swirlFreq = swirlFreq, + swirlAmp = swirlAmp, + specularExp = specularExp, + shadowStrength = shadowStrength, + coastWidth = coastWidth, + coastColor = coastColor, + coastLightBoost = coastLightBoost, + + lavaParallaxDepth = lavaParallaxDepth, + lavaParallaxOffset = lavaParallaxOffset, + + fogColor = fogColor, + fogFactor = fogFactor, + fogHeight = fogHeight, + fogAbove = fogAbove, + fogEnabled = fogEnabled, + fogDistortion = fogDistortion, + + tideAmplitude = tideAmplitude, + tidePeriod = tidePeriod, + + tideRhym = tideRhym, + + effectDamage = effectDamage, + effectBurst = effectBurst, + effectBurstSounds = effectBurstSounds, + ambientSounds = ambientSounds, +} diff --git a/music/original/bossfight/Matteo Dell'Acqua - Mother Of All Raptors.ogg b/music/original/bossfight/raptors/Matteo Dell'Acqua - Mother Of All Raptors.ogg similarity index 100% rename from music/original/bossfight/Matteo Dell'Acqua - Mother Of All Raptors.ogg rename to music/original/bossfight/raptors/Matteo Dell'Acqua - Mother Of All Raptors.ogg diff --git a/music/original/bossfight/scavengers/Matteo Dell'Acqua - Father Of All Scavengers.ogg b/music/original/bossfight/scavengers/Matteo Dell'Acqua - Father Of All Scavengers.ogg new file mode 100644 index 00000000000..42d6c3e8aaf Binary files /dev/null and b/music/original/bossfight/scavengers/Matteo Dell'Acqua - Father Of All Scavengers.ogg differ diff --git a/music/original/credits.txt b/music/original/credits.txt index 169c852d4e3..a3f4c9a960a 100644 --- a/music/original/credits.txt +++ b/music/original/credits.txt @@ -18,6 +18,9 @@ https://www.youtube.com/@matteodellacquamusic Leon Devereux https://soundcloud.com/leon-d-3 +West Basinger +No links provided + Iza Laine / DOLLVOiD: https://www.youtube.com/@dollvoid13 https://www.twitch.tv/dollvoid13 diff --git a/music/original/peace/West Basinger - Submerged Signals.ogg b/music/original/peace/West Basinger - Submerged Signals.ogg new file mode 100644 index 00000000000..90ba6a846b8 Binary files /dev/null and b/music/original/peace/West Basinger - Submerged Signals.ogg differ diff --git a/objects3d/Units/armack.s3o b/objects3d/Units/armack.s3o index 6d451d96bf5..57024f1e2ba 100644 Binary files a/objects3d/Units/armack.s3o and b/objects3d/Units/armack.s3o differ diff --git a/objects3d/Units/armamb.s3o b/objects3d/Units/armamb.s3o index 65bde283bee..53a35834c82 100644 Binary files a/objects3d/Units/armamb.s3o and b/objects3d/Units/armamb.s3o differ diff --git a/objects3d/Units/armaser.s3o b/objects3d/Units/armaser.s3o index 74c3dd5b942..c1dff824e44 100644 Binary files a/objects3d/Units/armaser.s3o and b/objects3d/Units/armaser.s3o differ diff --git a/objects3d/Units/armcs.s3o b/objects3d/Units/armcs.s3o index 180dcf6b238..490f21d2ced 100644 Binary files a/objects3d/Units/armcs.s3o and b/objects3d/Units/armcs.s3o differ diff --git a/objects3d/Units/armgatet3.s3o b/objects3d/Units/armgatet3.s3o new file mode 100644 index 00000000000..1ab13ae9353 Binary files /dev/null and b/objects3d/Units/armgatet3.s3o differ diff --git a/objects3d/Units/armgatet3_dead.s3o b/objects3d/Units/armgatet3_dead.s3o new file mode 100644 index 00000000000..5e34bd24a4a Binary files /dev/null and b/objects3d/Units/armgatet3_dead.s3o differ diff --git a/objects3d/Units/armguard.s3o b/objects3d/Units/armguard.s3o index 0b4c526cccb..378c4bfe9b6 100644 Binary files a/objects3d/Units/armguard.s3o and b/objects3d/Units/armguard.s3o differ diff --git a/objects3d/Units/armjam.s3o b/objects3d/Units/armjam.s3o index af392426d0e..886bfbe2725 100644 Binary files a/objects3d/Units/armjam.s3o and b/objects3d/Units/armjam.s3o differ diff --git a/objects3d/Units/armjamt.s3o b/objects3d/Units/armjamt.s3o index fce3c0ab4b7..5be9e0c294e 100644 Binary files a/objects3d/Units/armjamt.s3o and b/objects3d/Units/armjamt.s3o differ diff --git a/objects3d/Units/armlship.s3o b/objects3d/Units/armlship.s3o index 2486d838d73..a267b1342d5 100644 Binary files a/objects3d/Units/armlship.s3o and b/objects3d/Units/armlship.s3o differ diff --git a/objects3d/Units/armsjam.s3o b/objects3d/Units/armsjam.s3o index 513733d163c..fabcf9577a9 100644 Binary files a/objects3d/Units/armsjam.s3o and b/objects3d/Units/armsjam.s3o differ diff --git a/objects3d/Units/armsy.s3o b/objects3d/Units/armsy.s3o index a296daed189..b36a7fde54d 100644 Binary files a/objects3d/Units/armsy.s3o and b/objects3d/Units/armsy.s3o differ diff --git a/objects3d/Units/armthor.s3o b/objects3d/Units/armthor.s3o index 342c4e76702..cf996bbad90 100644 Binary files a/objects3d/Units/armthor.s3o and b/objects3d/Units/armthor.s3o differ diff --git a/objects3d/Units/armvang.s3o b/objects3d/Units/armvang.s3o index 96178e2270d..187b4fb218b 100644 Binary files a/objects3d/Units/armvang.s3o and b/objects3d/Units/armvang.s3o differ diff --git a/objects3d/Units/armveil.s3o b/objects3d/Units/armveil.s3o index 7122325e7a3..7b0e5bd2921 100644 Binary files a/objects3d/Units/armveil.s3o and b/objects3d/Units/armveil.s3o differ diff --git a/objects3d/Units/corantiship.s3o b/objects3d/Units/corantiship.s3o index 892fbba37e5..fd2ac4ba52c 100644 Binary files a/objects3d/Units/corantiship.s3o and b/objects3d/Units/corantiship.s3o differ diff --git a/objects3d/Units/coreter.s3o b/objects3d/Units/coreter.s3o index 55585d9f65a..5ac6c530acc 100644 Binary files a/objects3d/Units/coreter.s3o and b/objects3d/Units/coreter.s3o differ diff --git a/objects3d/Units/corfmd.s3o b/objects3d/Units/corfmd.s3o index 01ef5405d34..9c5afdf4d05 100644 Binary files a/objects3d/Units/corfmd.s3o and b/objects3d/Units/corfmd.s3o differ diff --git a/objects3d/Units/corgatet3.s3o b/objects3d/Units/corgatet3.s3o new file mode 100644 index 00000000000..8c9312b9740 Binary files /dev/null and b/objects3d/Units/corgatet3.s3o differ diff --git a/objects3d/Units/corgatet3_dead.s3o b/objects3d/Units/corgatet3_dead.s3o new file mode 100644 index 00000000000..556b00a8297 Binary files /dev/null and b/objects3d/Units/corgatet3_dead.s3o differ diff --git a/objects3d/Units/corint.s3o b/objects3d/Units/corint.s3o index ecfd258c309..5c8ac12da27 100644 Binary files a/objects3d/Units/corint.s3o and b/objects3d/Units/corint.s3o differ diff --git a/objects3d/Units/corjamt.s3o b/objects3d/Units/corjamt.s3o index 6217398d9cd..f1727735969 100644 Binary files a/objects3d/Units/corjamt.s3o and b/objects3d/Units/corjamt.s3o differ diff --git a/objects3d/Units/corjugg.s3o b/objects3d/Units/corjugg.s3o index 4720cdc9e77..332a826726a 100644 Binary files a/objects3d/Units/corjugg.s3o and b/objects3d/Units/corjugg.s3o differ diff --git a/objects3d/Units/cormabm.s3o b/objects3d/Units/cormabm.s3o index b6ba1fab416..6aee742d6f9 100644 Binary files a/objects3d/Units/cormabm.s3o and b/objects3d/Units/cormabm.s3o differ diff --git a/objects3d/Units/cornanot2.s3o b/objects3d/Units/cornanot2.s3o index 32252ba6840..ea055da7f83 100644 Binary files a/objects3d/Units/cornanot2.s3o and b/objects3d/Units/cornanot2.s3o differ diff --git a/objects3d/Units/cornanotc.s3o b/objects3d/Units/cornanotc.s3o index 807cc36268d..6b6cae19334 100644 Binary files a/objects3d/Units/cornanotc.s3o and b/objects3d/Units/cornanotc.s3o differ diff --git a/objects3d/Units/corpun.s3o b/objects3d/Units/corpun.s3o index 5c658dd0023..83eb99bc156 100644 Binary files a/objects3d/Units/corpun.s3o and b/objects3d/Units/corpun.s3o differ diff --git a/objects3d/Units/corshroud.s3o b/objects3d/Units/corshroud.s3o index e343ffef60b..e84a7081d76 100644 Binary files a/objects3d/Units/corshroud.s3o and b/objects3d/Units/corshroud.s3o differ diff --git a/objects3d/Units/corsjam.s3o b/objects3d/Units/corsjam.s3o index db0b1ccbd7f..3a6b62da5e6 100644 Binary files a/objects3d/Units/corsjam.s3o and b/objects3d/Units/corsjam.s3o differ diff --git a/objects3d/Units/corsok.s3o b/objects3d/Units/corsok.s3o index ed49a99f32f..2de48242072 100644 Binary files a/objects3d/Units/corsok.s3o and b/objects3d/Units/corsok.s3o differ diff --git a/objects3d/Units/corspec.s3o b/objects3d/Units/corspec.s3o index d6cac0118aa..960a6f9124d 100644 Binary files a/objects3d/Units/corspec.s3o and b/objects3d/Units/corspec.s3o differ diff --git a/objects3d/Units/corsumo.s3o b/objects3d/Units/corsumo.s3o index d561ee8e0f6..588ba1809b2 100644 Binary files a/objects3d/Units/corsumo.s3o and b/objects3d/Units/corsumo.s3o differ diff --git a/objects3d/Units/corsumo_dead.s3o b/objects3d/Units/corsumo_dead.s3o index a2c003e8be8..5ad2895405e 100644 Binary files a/objects3d/Units/corsumo_dead.s3o and b/objects3d/Units/corsumo_dead.s3o differ diff --git a/objects3d/Units/cortoast.s3o b/objects3d/Units/cortoast.s3o index 115726e3a64..f5c5a44a6fb 100644 Binary files a/objects3d/Units/cortoast.s3o and b/objects3d/Units/cortoast.s3o differ diff --git a/objects3d/Units/coruwmmm.s3o b/objects3d/Units/coruwmmm.s3o index 5099cc809b2..94ce0d29cb1 100644 Binary files a/objects3d/Units/coruwmmm.s3o and b/objects3d/Units/coruwmmm.s3o differ diff --git a/objects3d/Units/legaap.s3o b/objects3d/Units/legaap.s3o new file mode 100644 index 00000000000..ab66f01e7b7 Binary files /dev/null and b/objects3d/Units/legaap.s3o differ diff --git a/objects3d/Units/legaap_dead.s3o b/objects3d/Units/legaap_dead.s3o new file mode 100644 index 00000000000..13b7ea001df Binary files /dev/null and b/objects3d/Units/legaap_dead.s3o differ diff --git a/objects3d/Units/legacluster.s3o b/objects3d/Units/legacluster.s3o index 020a8cfc516..b77f4bcf2c0 100644 Binary files a/objects3d/Units/legacluster.s3o and b/objects3d/Units/legacluster.s3o differ diff --git a/objects3d/Units/legafus.s3o b/objects3d/Units/legafus.s3o new file mode 100644 index 00000000000..ccc39324ed5 Binary files /dev/null and b/objects3d/Units/legafus.s3o differ diff --git a/objects3d/Units/legafus_dead.s3o b/objects3d/Units/legafus_dead.s3o new file mode 100644 index 00000000000..216a12b45c7 Binary files /dev/null and b/objects3d/Units/legafus_dead.s3o differ diff --git a/objects3d/Units/legalab.s3o b/objects3d/Units/legalab.s3o new file mode 100644 index 00000000000..b03c39ba7c2 Binary files /dev/null and b/objects3d/Units/legalab.s3o differ diff --git a/objects3d/Units/legalab_dead.s3o b/objects3d/Units/legalab_dead.s3o new file mode 100644 index 00000000000..7e4f4f7f45b Binary files /dev/null and b/objects3d/Units/legalab_dead.s3o differ diff --git a/objects3d/Units/legap.s3o b/objects3d/Units/legap.s3o index 6d6d8966160..df9e23449ec 100644 Binary files a/objects3d/Units/legap.s3o and b/objects3d/Units/legap.s3o differ diff --git a/objects3d/Units/legap_dead.s3o b/objects3d/Units/legap_dead.s3o new file mode 100644 index 00000000000..14efc600b96 Binary files /dev/null and b/objects3d/Units/legap_dead.s3o differ diff --git a/objects3d/Units/legatorpbomber.s3o b/objects3d/Units/legatorpbomber.s3o new file mode 100644 index 00000000000..ff6246f48e3 Binary files /dev/null and b/objects3d/Units/legatorpbomber.s3o differ diff --git a/objects3d/Units/legavjam.s3o b/objects3d/Units/legavjam.s3o new file mode 100644 index 00000000000..3f144c9cff2 Binary files /dev/null and b/objects3d/Units/legavjam.s3o differ diff --git a/objects3d/Units/legavjam_dead.s3o b/objects3d/Units/legavjam_dead.s3o new file mode 100644 index 00000000000..f31ba9a2bb3 Binary files /dev/null and b/objects3d/Units/legavjam_dead.s3o differ diff --git a/objects3d/Units/legavp.s3o b/objects3d/Units/legavp.s3o new file mode 100644 index 00000000000..0c5c76f4fab Binary files /dev/null and b/objects3d/Units/legavp.s3o differ diff --git a/objects3d/Units/legavp_dead.s3o b/objects3d/Units/legavp_dead.s3o new file mode 100644 index 00000000000..10778de424f Binary files /dev/null and b/objects3d/Units/legavp_dead.s3o differ diff --git a/objects3d/Units/legavrad.s3o b/objects3d/Units/legavrad.s3o new file mode 100644 index 00000000000..75796bf3d35 Binary files /dev/null and b/objects3d/Units/legavrad.s3o differ diff --git a/objects3d/Units/legavrad_dead.s3o b/objects3d/Units/legavrad_dead.s3o new file mode 100644 index 00000000000..19c2e75238b Binary files /dev/null and b/objects3d/Units/legavrad_dead.s3o differ diff --git a/objects3d/Units/legbar.s3o b/objects3d/Units/legbar.s3o index 707bc196b0d..ebeb7259d62 100644 Binary files a/objects3d/Units/legbar.s3o and b/objects3d/Units/legbar.s3o differ diff --git a/objects3d/Units/legbar_dead.s3o b/objects3d/Units/legbar_dead.s3o index 794cb8c7988..ecad8c2e962 100644 Binary files a/objects3d/Units/legbar_dead.s3o and b/objects3d/Units/legbar_dead.s3o differ diff --git a/objects3d/Units/legcluster.s3o b/objects3d/Units/legcluster.s3o index 273fa3e8932..831f11d22ef 100644 Binary files a/objects3d/Units/legcluster.s3o and b/objects3d/Units/legcluster.s3o differ diff --git a/objects3d/Units/legerailtank.s3o b/objects3d/Units/legerailtank.s3o new file mode 100644 index 00000000000..ba6b49970a2 Binary files /dev/null and b/objects3d/Units/legerailtank.s3o differ diff --git a/objects3d/Units/legerailtank_dead.s3o b/objects3d/Units/legerailtank_dead.s3o new file mode 100644 index 00000000000..354dee838ae Binary files /dev/null and b/objects3d/Units/legerailtank_dead.s3o differ diff --git a/objects3d/Units/legflak.s3o b/objects3d/Units/legflak.s3o index f0020e03335..732b98680b5 100644 Binary files a/objects3d/Units/legflak.s3o and b/objects3d/Units/legflak.s3o differ diff --git a/objects3d/Units/legflak_dead.s3o b/objects3d/Units/legflak_dead.s3o index 69190ccd3b5..34643a75cd2 100644 Binary files a/objects3d/Units/legflak_dead.s3o and b/objects3d/Units/legflak_dead.s3o differ diff --git a/objects3d/Units/legfus.s3o b/objects3d/Units/legfus.s3o new file mode 100644 index 00000000000..8aacc7e677e Binary files /dev/null and b/objects3d/Units/legfus.s3o differ diff --git a/objects3d/Units/legfus_dead.s3o b/objects3d/Units/legfus_dead.s3o new file mode 100644 index 00000000000..cbc61505a2b Binary files /dev/null and b/objects3d/Units/legfus_dead.s3o differ diff --git a/objects3d/Units/leghp.s3o b/objects3d/Units/leghp.s3o new file mode 100644 index 00000000000..53bd8356aa5 Binary files /dev/null and b/objects3d/Units/leghp.s3o differ diff --git a/objects3d/Units/leghp_dead.s3o b/objects3d/Units/leghp_dead.s3o new file mode 100644 index 00000000000..338c7643627 Binary files /dev/null and b/objects3d/Units/leghp_dead.s3o differ diff --git a/objects3d/Units/legjav.s3o b/objects3d/Units/legjav.s3o new file mode 100644 index 00000000000..73194e37a1e Binary files /dev/null and b/objects3d/Units/legjav.s3o differ diff --git a/objects3d/Units/legjav_dead.s3o b/objects3d/Units/legjav_dead.s3o new file mode 100644 index 00000000000..14792a70830 Binary files /dev/null and b/objects3d/Units/legjav_dead.s3o differ diff --git a/objects3d/Units/leglht.s3o b/objects3d/Units/leglht.s3o index 10765435014..fb100ac2a4b 100644 Binary files a/objects3d/Units/leglht.s3o and b/objects3d/Units/leglht.s3o differ diff --git a/objects3d/Units/leglht_dead.s3o b/objects3d/Units/leglht_dead.s3o index c13f2b9994f..3c5f6abee1d 100644 Binary files a/objects3d/Units/leglht_dead.s3o and b/objects3d/Units/leglht_dead.s3o differ diff --git a/objects3d/Units/legphoenix.s3o b/objects3d/Units/legphoenix.s3o index 7c9daaf18cc..542217f6b3d 100644 Binary files a/objects3d/Units/legphoenix.s3o and b/objects3d/Units/legphoenix.s3o differ diff --git a/objects3d/Units/legphoenix_dead.s3o b/objects3d/Units/legphoenix_dead.s3o index fb8c1e99c0c..54bff418b47 100644 Binary files a/objects3d/Units/legphoenix_dead.s3o and b/objects3d/Units/legphoenix_dead.s3o differ diff --git a/objects3d/Units/legrail.s3o b/objects3d/Units/legrail.s3o index 527e0db575f..af9b587844b 100644 Binary files a/objects3d/Units/legrail.s3o and b/objects3d/Units/legrail.s3o differ diff --git a/objects3d/Units/legrail_dead.s3o b/objects3d/Units/legrail_dead.s3o index 5e4f1e24145..5cca4fba96b 100644 Binary files a/objects3d/Units/legrail_dead.s3o and b/objects3d/Units/legrail_dead.s3o differ diff --git a/objects3d/Units/legvflak.s3o b/objects3d/Units/legvflak.s3o new file mode 100644 index 00000000000..1501fc47bed Binary files /dev/null and b/objects3d/Units/legvflak.s3o differ diff --git a/objects3d/Units/legvflak_dead.s3o b/objects3d/Units/legvflak_dead.s3o new file mode 100644 index 00000000000..2df8e972157 Binary files /dev/null and b/objects3d/Units/legvflak_dead.s3o differ diff --git a/objects3d/Units/legvp.s3o b/objects3d/Units/legvp.s3o new file mode 100644 index 00000000000..43ed5bf9587 Binary files /dev/null and b/objects3d/Units/legvp.s3o differ diff --git a/objects3d/Units/legvp_dead.s3o b/objects3d/Units/legvp_dead.s3o new file mode 100644 index 00000000000..2d5b925f6f9 Binary files /dev/null and b/objects3d/Units/legvp_dead.s3o differ diff --git a/objects3d/cormissile3fast.s3o b/objects3d/cormissile3fast.s3o index da62d19775d..bb0a4b35bc0 100644 Binary files a/objects3d/cormissile3fast.s3o and b/objects3d/cormissile3fast.s3o differ diff --git a/objects3d/legmediumtorpedo.s3o b/objects3d/legmediumtorpedo.s3o new file mode 100644 index 00000000000..13304ba61eb Binary files /dev/null and b/objects3d/legmediumtorpedo.s3o differ diff --git a/scripts/Raptors/raptor_worm_turret_common.h b/scripts/Raptors/raptor_worm_turret_common.h index 0d595149678..4727488e43d 100644 --- a/scripts/Raptors/raptor_worm_turret_common.h +++ b/scripts/Raptors/raptor_worm_turret_common.h @@ -286,6 +286,7 @@ AimWeapon1(heading, pitch) Shot1() { + //call-script lua_FlameShot(1); //emit-sfx 1024 + 0 from flare; //segtarget = segtarget + (Rand( 100, 200 )); //aimy1target = aimy1target + (Rand( 0, 400 ) - 200); diff --git a/scripts/Raptors/raptorp1.bos b/scripts/Raptors/raptorp1.bos index 05c2c867779..ba812f29f27 100644 --- a/scripts/Raptors/raptorp1.bos +++ b/scripts/Raptors/raptorp1.bos @@ -47,6 +47,11 @@ static-var isMoving,maxSpeed, animFramesPerKeyframe, animSpeed,gun_1,isDying; #include "raptor_swim_2legged_v1.h" #include "raptor_create_move_swim.h" +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + AimFromWeapon1(pieceIndex) { pieceIndex=head; } @@ -122,6 +127,7 @@ Shot2() wait-for-turn lsack around y-axis; turn lsack to y-axis <0> speed [0.3]; turn rsack to y-axis <0> speed [0.3]; + //call-script lua_FlameShot(2); return (head); } Shot3() diff --git a/scripts/Raptors/raptorp1.cob b/scripts/Raptors/raptorp1.cob index 49aad7d6f22..e94b600dd2f 100644 Binary files a/scripts/Raptors/raptorp1.cob and b/scripts/Raptors/raptorp1.cob differ diff --git a/scripts/Raptors/raptorr1.bos b/scripts/Raptors/raptorr1.bos index 516101cd4d1..f58d6f40f4c 100644 --- a/scripts/Raptors/raptorr1.bos +++ b/scripts/Raptors/raptorr1.bos @@ -47,6 +47,12 @@ static-var aMoving, isMoving,maxSpeed, animFramesPerKeyframe, animSpeed, isDying #include "raptor_create_move_swim.h" + +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + // this animation uses the static-var animFramesPerKeyframe which contains how many frames each keyframe takes AimFromWeapon1(pieceIndex) diff --git a/scripts/Raptors/raptorr1.cob b/scripts/Raptors/raptorr1.cob index 6d9f93c6450..a6cd8046d4b 100644 Binary files a/scripts/Raptors/raptorr1.cob and b/scripts/Raptors/raptorr1.cob differ diff --git a/scripts/Raptors/raptorr2.bos b/scripts/Raptors/raptorr2.bos index 48863ff4457..378a1c0e731 100644 --- a/scripts/Raptors/raptorr2.bos +++ b/scripts/Raptors/raptorr2.bos @@ -47,6 +47,11 @@ static-var isMoving,maxSpeed, animFramesPerKeyframe, animSpeed,gun_1,isDying; #include "raptor_swim_2legged_v1.h" #include "raptor_create_move_swim.h" +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + AimFromWeapon1(pieceIndex) { pieceIndex=head; } @@ -101,5 +106,6 @@ Shot2() wait-for-turn lsack around y-axis; turn lsack to y-axis <0> speed [0.3]; turn rsack to y-axis <0> speed [0.3]; + //call-script lua_FlameShot(2); return (head); } diff --git a/scripts/Raptors/raptorr2.cob b/scripts/Raptors/raptorr2.cob index 06895322099..12eb483b8ec 100644 Binary files a/scripts/Raptors/raptorr2.cob and b/scripts/Raptors/raptorr2.cob differ diff --git a/scripts/Raptors/raptorr3.bos b/scripts/Raptors/raptorr3.bos index 9b3dd3c34c6..3b272791c1a 100644 --- a/scripts/Raptors/raptorr3.bos +++ b/scripts/Raptors/raptorr3.bos @@ -47,6 +47,11 @@ static-var isMoving,maxSpeed, animFramesPerKeyframe, animSpeed,gun_1,isDying; #include "raptor_swim_2legged_v1.h" #include "raptor_create_move_swim.h" +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + AimFromWeapon1(pieceIndex) { pieceIndex = head; diff --git a/scripts/Raptors/raptorr3.cob b/scripts/Raptors/raptorr3.cob index 807e08e9bec..53780a38281 100644 Binary files a/scripts/Raptors/raptorr3.cob and b/scripts/Raptors/raptorr3.cob differ diff --git a/scripts/Units/armack.bos b/scripts/Units/armack.bos index b20747e3096..ea27e0e8580 100644 --- a/scripts/Units/armack.bos +++ b/scripts/Units/armack.bos @@ -5,7 +5,7 @@ #define SIG_BUILD 4 -piece torso, pelvis, lleg, lfoot, rleg, rfoot, cagelight1, cagelight2, cagelight1emit, cagelight2emit, +piece torso, pelvis, lleg, lfoot, rleg, rfoot, beacon1, beacon2, rthigh, lthigh, cover, gun, nano, aimy1; static-var bMoving, notBuilding, nanoNozzle, statechg_DesiredState, @@ -297,10 +297,10 @@ Stop() set INBUILDSTANCE to 0; turn cover to x-axis <0> speed <180>; turn aimy1 to y-axis <0> speed <180>; - hide cagelight1emit; - hide cagelight2emit; - turn cagelight1emit to y-axis <0> speed <1000>; - turn cagelight2emit to y-axis <0> speed <1000>; + hide beacon1; + hide beacon2; + turn beacon1 to y-axis <0> speed <1000>; + turn beacon2 to y-axis <0> speed <1000>; sleep 500; } @@ -336,8 +336,8 @@ RequestState(requestedstate, currentstate) Create() { hide nano; - hide cagelight1emit; - hide cagelight2emit; + hide beacon1; + hide beacon2; hide aimy1; bMoving = FALSE; notBuilding = 1; @@ -367,10 +367,10 @@ StartBuilding(heading, pitch) turn aimy1 to y-axis heading speed <160.000000>; wait-for-turn aimy1 around y-axis; set INBUILDSTANCE to 1; - show cagelight1emit; - show cagelight2emit; - spin cagelight1emit around y-axis speed <450>; - spin cagelight2emit around y-axis speed <-450>; + show beacon1; + show beacon2; + spin beacon1 around y-axis speed <450>; + spin beacon2 around y-axis speed <-450>; } StopBuilding() @@ -378,10 +378,10 @@ StopBuilding() hide nano; signal SIG_BUILD; set-signal-mask SIG_BUILD; - hide cagelight1emit; - hide cagelight2emit; - turn cagelight1emit to y-axis <0> speed <1000>; - turn cagelight2emit to y-axis <0> speed <1000>; + hide beacon1; + hide beacon2; + turn beacon1 to y-axis <0> speed <1000>; + turn beacon2 to y-axis <0> speed <1000>; sleep 3000; set-signal-mask 0; signal SIG_BUILD; diff --git a/scripts/Units/armack.cob b/scripts/Units/armack.cob index 3b528faafbb..138b8548ba4 100644 Binary files a/scripts/Units/armack.cob and b/scripts/Units/armack.cob differ diff --git a/scripts/Units/armamb.bos b/scripts/Units/armamb.bos index 30e62a75741..f9a3a696a93 100644 --- a/scripts/Units/armamb.bos +++ b/scripts/Units/armamb.bos @@ -2,14 +2,13 @@ #include "sfxtype.h" #include "exptype.h" +#include "smart_weapon_select.h" -piece base, flare, turret, door1, door2, door3, door4, barrel, stand, aimpoint; +piece base, flare, turret, door1, door2, door3, door4, barrel, stand, aimpoint, turretmidpoint; -static-var turretOpen, restoreDelay, trajectoryMode, stunned; +static-var turretOpen, restoreDelay, stunned; #define SIGNAL_AIM 1 -#define LOW_TRAJECTORY 0 -#define HIGH_TRAJECTORY 1 openTurret() { @@ -82,11 +81,6 @@ Stop() return (0); } -RequestState(requestedstate) -{ - trajectoryMode = requestedstate; -} - ExecuteRestoreAfterDelay() { if (stunned) @@ -139,18 +133,6 @@ Create() #define SMOKEPIECE base #include "smokeunit_thread_nohit.h" -Activate() -{ - signal SIGNAL_AIM; - start-script RequestState(HIGH_TRAJECTORY); -} - -Deactivate() -{ - signal SIGNAL_AIM; - start-script RequestState(LOW_TRAJECTORY); -} - aimCommon(heading, pitch) { while(!turretOpen) @@ -166,20 +148,20 @@ aimCommon(heading, pitch) AimPrimary(heading, pitch) { - start-script Go(); - - if(trajectoryMode != LOW_TRAJECTORY) + if (AimingState != AIMING_PRIORITY) { return(0); } + start-script Go(); + signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; call-script aimCommon(heading, pitch); start-script RestoreAfterDelay(); - // Prevent low-trajectory "bonus shots" while high-trajectory is reloading + // Prevent "bonus shots" while alternative weapon is reloading var reloading; reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(2)); if( reloading ) @@ -192,21 +174,35 @@ AimPrimary(heading, pitch) AimSecondary(heading, pitch) { - start-script Go(); - - if(trajectoryMode != HIGH_TRAJECTORY) + if (AimingState != AIMING_BACKUP) { return(0); } + + start-script Go(); signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; call-script aimCommon(heading, pitch); start-script RestoreAfterDelay(); + + // Prevent "bonus shots" while alternative weapon is reloading + var reloading; + reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(1)); + if( reloading ) + { + return(0); + } + return (1); } +AimTertiary(piecenum) +{ + return (0); +} + fireCommon() { emit-sfx 1024 + 0 from flare; @@ -245,6 +241,11 @@ QuerySecondary(piecenum) piecenum = flare; } +QueryTertiary(piecenum) +{ + piecenum = turretmidpoint; +} + SweetSpot(piecenum) { piecenum = base; diff --git a/scripts/Units/armamb.cob b/scripts/Units/armamb.cob index 19b26e6a2c6..24305ca0df1 100644 Binary files a/scripts/Units/armamb.cob and b/scripts/Units/armamb.cob differ diff --git a/scripts/Units/armaser.bos b/scripts/Units/armaser.bos index 41cbe5326fc..066ef6f2838 100644 --- a/scripts/Units/armaser.bos +++ b/scripts/Units/armaser.bos @@ -4,7 +4,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, lthigh, rthigh, rleg, rfoot, lleg, lfoot,shoulder, elbow, spindle, arm1,arm2,arm3,arm4,head,eye, aimy1, jam; +piece base, lthigh, rthigh, rleg, rfoot, lleg, lfoot,shoulder, elbow, spindle, arm1,arm2,arm3,arm4,head,eye, aimy1; static-var bMoving, Static_Var_3, Static_Var_4, Static_Var_5, keepspinning, animSpeed, maxSpeed, animFramesPerKeyframe; static-var recently_damaged, desired_activation; @@ -237,7 +237,6 @@ close() Create() { hide aimy1; - hide jam; bMoving = FALSE; Static_Var_3 = 1; Static_Var_4 = 3000; @@ -254,7 +253,6 @@ Activate() signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; desired_activation = 1; - show jam; // if we are in this function, the unit is already on // implied set ACTIVATION to 1; // turn off if unit is in the recently_damaged state @@ -288,7 +286,6 @@ Deactivate() signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; call-script close(); - hide jam; return (0); } @@ -318,7 +315,6 @@ OffOnHit() { signal SIG_OFF; set-signal-mask SIG_OFF; -hide jam; recently_damaged = 1; set ACTIVATION to 0; // turn off unit sleep 8000; //hardcoded time to stay off after being hit diff --git a/scripts/Units/armaser.cob b/scripts/Units/armaser.cob index cb51db83070..b187ea1926e 100644 Binary files a/scripts/Units/armaser.cob and b/scripts/Units/armaser.cob differ diff --git a/scripts/Units/armbrtha_clean.bos b/scripts/Units/armbrtha_clean.bos index 1ae93624dc2..f3772f0e632 100644 --- a/scripts/Units/armbrtha_clean.bos +++ b/scripts/Units/armbrtha_clean.bos @@ -10,6 +10,8 @@ static-var shotcount; Create() { + hide flare; + hide flare; shotcount = 0; } @@ -19,12 +21,6 @@ lua_UnitScriptLight(lightIndex, count) } -lua_UnitScriptDistortion(lightIndex, count) -{ - return 0; -} - - #define BASEPIECE base #define MAXTILT 0 #include "../unit_hitbyweaponid_and_smoke.h" @@ -48,7 +44,6 @@ FireWeapon1() call-script lua_UnitScriptLight(1, shotcount); call-script lua_UnitScriptLight(2, shotcount); call-script lua_UnitScriptLight(3, shotcount); - call-script lua_UnitScriptDistortion(1, shotcount); sleep 200; wait-for-move barrel along z-axis; move barrel to z-axis [0.0] speed [3.500000]; diff --git a/scripts/Units/armbrtha_clean.cob b/scripts/Units/armbrtha_clean.cob index 9811d958489..edfa2145330 100644 Binary files a/scripts/Units/armbrtha_clean.cob and b/scripts/Units/armbrtha_clean.cob differ diff --git a/scripts/Units/armcs.bos b/scripts/Units/armcs.bos index 4c55d0a2922..811b6ccd848 100644 --- a/scripts/Units/armcs.bos +++ b/scripts/Units/armcs.bos @@ -5,7 +5,7 @@ #define SIG_BUILD 4 -piece base,doorlf, doorlb, doorrf, doorrb, nano, turret, ground, wake1, wake2, cagelight, cagelight_emit; +piece base,doorlf, doorlb, doorrf, doorrb, nano, turret, ground, wake1, wake2; static-var statechg_DesiredState, statechg_StateChanging, notBuilding, oldHead; @@ -191,7 +191,6 @@ Create() hide wake1; hide nano; hide ground; - hide cagelight_emit; notBuilding = 1; statechg_DesiredState = TRUE; statechg_StateChanging = FALSE; @@ -217,8 +216,6 @@ StartBuilding(heading, pitch) turn turret to y-axis heading speed <160.000000>; wait-for-turn turret around y-axis; set INBUILDSTANCE to 1; - show cagelight_emit; - spin cagelight around y-axis speed <150> accelerate <3>; } StopBuilding() @@ -226,10 +223,7 @@ StopBuilding() hide nano; signal SIG_BUILD; set-signal-mask SIG_BUILD; - stop-spin cagelight around y-axis decelerate <5>; - sleep 1000; - hide cagelight_emit; - sleep 5000; + sleep 6000; set-signal-mask 0; signal SIG_BUILD; start-script RequestState(1); diff --git a/scripts/Units/armcs.cob b/scripts/Units/armcs.cob index 89d781d1ef7..33b97f2e9b6 100644 Binary files a/scripts/Units/armcs.cob and b/scripts/Units/armcs.cob differ diff --git a/scripts/Units/armgatet3.bos b/scripts/Units/armgatet3.bos new file mode 100644 index 00000000000..d4dc743fa66 --- /dev/null +++ b/scripts/Units/armgatet3.bos @@ -0,0 +1,148 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece base, shield; + +static-var Static_Var_1, statechg_DesiredState, statechg_StateChanging; + + +ShieldOn() +{ + Static_Var_1 = 1; +} + +ShieldOff() +{ + Static_Var_1 = 0; +} + +InitState() +{ + statechg_DesiredState = TRUE; + statechg_StateChanging = FALSE; +} + +RequestState(requestedstate, currentstate) +{ + if( statechg_StateChanging ) + { + statechg_DesiredState = requestedstate; + return (0); + } + statechg_StateChanging = TRUE; + currentstate = statechg_DesiredState; + statechg_DesiredState = requestedstate; + while( statechg_DesiredState != currentstate ) + { + if( statechg_DesiredState == 0 ) + { + call-script ShieldOn(); + currentstate = 0; + } + if( statechg_DesiredState == 1 ) + { + call-script ShieldOff(); + currentstate = 1; + } + } + statechg_StateChanging = FALSE; +} + +Create() +{ + hide shield; + + Static_Var_1 = 1; + call-script InitState(); +} + +#define SMOKEPIECE base +#include "smokeunit_thread_nohit.h" + +Activate() +{ + start-script RequestState(0); +} + +Deactivate() +{ + start-script RequestState(1); +} + +AimPrimary(heading, pitch) +{ + sleep 100; + return (Static_Var_1); +} + +FirePrimary() +{ + sleep 100; +} + +QueryPrimary(piecenum) +{ + piecenum = shield; +} + +AimFromPrimary(piecenum) +{ + piecenum = base; +} + +AimSecondary(heading, pitch) +{ + sleep 100; + return (Static_Var_1); +} + +FireSecondary() +{ + sleep 100; +} + +QuerySecondary(piecenum) +{ + piecenum = base; +} + +AimFromSecondary(piecenum) +{ + piecenum = base; +} + +SweetSpot(piecenum) +{ + piecenum = base; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode shield type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode shield type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode shield type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode shield type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/armgatet3.cob b/scripts/Units/armgatet3.cob new file mode 100644 index 00000000000..95635c391c8 Binary files /dev/null and b/scripts/Units/armgatet3.cob differ diff --git a/scripts/Units/armguard.bos b/scripts/Units/armguard.bos index d4146a604f5..fb8ab79c4ad 100644 --- a/scripts/Units/armguard.bos +++ b/scripts/Units/armguard.bos @@ -2,15 +2,13 @@ #include "sfxtype.h" #include "exptype.h" +#include "smart_weapon_select.h" -piece flare1, flare2, base, turret, barrel1, barrel2, sleeves; +piece flare1, flare2, base, turret, barrel1, barrel2, sleeves, turretmidpoint; -static-var nextBarrel, trajectoryMode, lastHeading; - -#define SIGNAL_AIM 1 -#define LOW_TRAJECTORY 0 -#define HIGH_TRAJECTORY 1 +static-var nextBarrel, lastHeading; +#define SIGNAL_AIM 1 Create() { @@ -36,23 +34,6 @@ Create() #define SMOKEPIECE base #include "smokeunit_thread_nohit.h" -RequestState(requestedState) -{ - trajectoryMode = requestedstate; -} - -Activate() -{ - signal SIGNAL_AIM; - start-script RequestState(HIGH_TRAJECTORY); -} - -Deactivate() -{ - signal SIGNAL_AIM; - start-script RequestState(LOW_TRAJECTORY); -} - restoreAfterDelay() { set-signal-mask SIGNAL_AIM; @@ -92,36 +73,44 @@ aimCommon(heading, pitch) AimPrimary(heading, pitch) { - if( trajectoryMode != LOW_TRAJECTORY ) + if (AimingState != AIMING_PRIORITY) { return(0); } signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; - call-script aimCommon(heading, pitch); - // Prevent low-trajectory "bonus shots" while high-trajectory is reloading + call-script aimCommon(heading, pitch); + // Prevent "bonus shots" while alternative weapon is reloading var reloading; reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(2)); if( reloading ) { return(0); } - return (1); } AimSecondary(heading, pitch) { - if( trajectoryMode != HIGH_TRAJECTORY ) + if (AimingState != AIMING_BACKUP) { return(0); } - + signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; + call-script aimCommon(heading, pitch); + + // Prevent "bonus shots" while alternative weapon is reloading + var reloading; + reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(1)); + if( reloading ) + { + return(0); + } return (1); } @@ -166,16 +155,12 @@ FireSecondary() QueryPrimary(piecenum) { - if( nextBarrel == 0 ) - { + if (nextBarrel == 0) { piecenum = flare1; - } - if( nextBarrel == 1 ) - { + } else { piecenum = flare2; } } - QuerySecondary(piecenum) { if( nextBarrel == 0 ) @@ -188,6 +173,16 @@ QuerySecondary(piecenum) } } +QueryTertiary(piecenum) +{ + piecenum = turretmidpoint; +} + +AimTertiary(piecenum) +{ + return (0); +} + SweetSpot(piecenum) { piecenum = base; @@ -240,4 +235,4 @@ Killed(severity, corpsetype) explode barrel1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; explode flare1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; return corpsetype; -} +} \ No newline at end of file diff --git a/scripts/Units/armguard.cob b/scripts/Units/armguard.cob index a7f4bc7dd8b..28afa83529e 100644 Binary files a/scripts/Units/armguard.cob and b/scripts/Units/armguard.cob differ diff --git a/scripts/Units/armjam.bos b/scripts/Units/armjam.bos index eb7f186d198..36fb9668084 100644 --- a/scripts/Units/armjam.bos +++ b/scripts/Units/armjam.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, eye, blwheel, blthigh, blleg, flwheel, flthigh, flleg, brwheel, brthigh, brleg, frwheel, frthigh, frleg, jam; +piece base, eye, blwheel, blthigh, blleg, flwheel, flthigh, flleg, brwheel, brthigh, brleg, frwheel, frthigh, frleg; static-var Static_Var_1, turnClock, turnCounter, wheelSpeed, currentSpeed, moveSpeed; @@ -114,7 +114,7 @@ SmokeUnit(healthpercent, sleeptime, smoketype) Create() { - hide jam; + start-script SmokeUnit(); Static_Var_1 = 0; recently_damaged = 0; @@ -128,7 +128,6 @@ Activate() signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; desired_activation = 1; - show jam; // if we are in this function, the unit is already on // implied set ACTIVATION to 1; // turn off if unit is in the recently_damaged state @@ -161,7 +160,6 @@ Deactivate() // unit_paralyze_on_off deactivates this unit before it is // stunned, so it is actually turned off, but we need to wait to see if the // unit is "damaged" by stun. - hide jam; sleep 100; if (recently_damaged == 0) { diff --git a/scripts/Units/armjam.cob b/scripts/Units/armjam.cob index 69c2fac87ea..8dd5f2bee05 100644 Binary files a/scripts/Units/armjam.cob and b/scripts/Units/armjam.cob differ diff --git a/scripts/Units/armjamt.bos b/scripts/Units/armjamt.bos index f9e17d071ec..212073a2bf8 100644 --- a/scripts/Units/armjamt.bos +++ b/scripts/Units/armjamt.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, turret, spinner1, spinner2, jam; +piece base, turret, spinner1, spinner2; static-var statechg_DesiredState, statechg_StateChanging; static-var Stunned; @@ -19,18 +19,16 @@ static-var Stunned; Go() { - show jam; spin turret around y-axis speed <25.000000>; - spin spinner1 around y-axis speed <200.000000> accelerate <1>; - spin spinner2 around y-axis speed <-100.000000> accelerate <10>; + spin spinner1 around y-axis speed <100.000000>; + spin spinner2 around y-axis speed <-100.000000>; return (0); } Stop() { - hide jam; stop-spin turret around y-axis; - stop-spin spinner1 around y-axis decelerate <6>; - stop-spin spinner2 around y-axis decelerate <2>; + stop-spin spinner1 around y-axis; + stop-spin spinner2 around y-axis; return (0); } SetStunned(State) @@ -79,7 +77,6 @@ RequestState(requestedstate, currentstate) Create() { - hide jam; call-script InitState(); return (0); } diff --git a/scripts/Units/armjamt.cob b/scripts/Units/armjamt.cob index c06ee60035f..67dcf18b206 100644 Binary files a/scripts/Units/armjamt.cob and b/scripts/Units/armjamt.cob differ diff --git a/scripts/Units/armlship.bos b/scripts/Units/armlship.bos index caf0a20a10d..1bdacabe4e2 100644 --- a/scripts/Units/armlship.bos +++ b/scripts/Units/armlship.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, ground, wake1, wake2, turret, sleeve, flare, turretmis, misbox, misflare, spark_emit; +piece base, ground, wake1, wake2, turret, sleeve, flare, turretmis, misbox, misflare; static-var restore_delay, Static_Var_7, Static_Var_8, aimDir, oldHead; @@ -97,7 +97,6 @@ Create() hide wake2; hide wake1; hide flare; - hide spark_emit; hide ground; restore_delay = 3000; while( get BUILD_PERCENT_LEFT ) @@ -198,21 +197,11 @@ AimSecondary(heading, pitch) return (1); } -FireSparks() -{ - show spark_emit; - sleep 150; - hide spark_emit; - return (1); -} - FirePrimary() { emit-sfx 1024 + 2 from flare; - start-script FireSparks(); sleep 100; return (0); - } FireSecondary() diff --git a/scripts/Units/armlship.cob b/scripts/Units/armlship.cob index f1da1693e55..e126d389498 100644 Binary files a/scripts/Units/armlship.cob and b/scripts/Units/armlship.cob differ diff --git a/scripts/Units/armmark.bos b/scripts/Units/armmark.bos index 5e78a9fa9e3..60043338591 100644 --- a/scripts/Units/armmark.bos +++ b/scripts/Units/armmark.bos @@ -7,14 +7,8 @@ piece torso, Rthigh, Rleg, Rfoot, Lleg, Lfoot, Lthigh, rdish, ldish, pelvis,rarm, rshoulder,larm,lshoulder; static-var bMoving, Static_Var_2; -static-var radarcount; static-var Stunned; -lua_UnitScriptDistortion(lightIndex, xpos, zpos, heading) -{ - return 0; -} - // Signal definitions #define SIG_ACTIVATE 2 // For N:\animations\armmark_anim_walk.blend Created by https://github.com/Beherith/Skeletor_S3O V((0, 2, 8)) @@ -303,8 +297,6 @@ Activate() turn ldish to z-axis <0> speed <90>; turn rdish to z-axis <0> speed <90>; emit-sfx 1024 + 0 from torso; - radarcount = radarcount + 1; - call-script lua_UnitScriptDistortion(1, radarcount); } sleep 2500; @@ -312,8 +304,6 @@ Activate() turn ldish to z-axis <-179> speed <90>; turn rdish to z-axis <179> speed <90>; emit-sfx 1024 + 0 from torso; - radarcount = radarcount + 1; - call-script lua_UnitScriptDistortion(1, radarcount); } sleep 2500; } diff --git a/scripts/Units/armmark.cob b/scripts/Units/armmark.cob index 88012775044..7f094ebe685 100644 Binary files a/scripts/Units/armmark.cob and b/scripts/Units/armmark.cob differ diff --git a/scripts/Units/armptl.bos b/scripts/Units/armptl.bos deleted file mode 100644 index 98a47bac47e..00000000000 --- a/scripts/Units/armptl.bos +++ /dev/null @@ -1,162 +0,0 @@ -#define TA // This is a TA script - -#include "sfxtype.h" -#include "exptype.h" - -piece base, flare, launcher, turret, doorl, doorr; - -static-var restore_delay; - -// Signal definitions -#define SIG_AIM 2 - -RockOnWaves() -{ - var rockDir, rockAng, rockSpeed; - rockDir = <-0.1>; - rockAng = <-0.1>; - while( TRUE ) - { - while( get ABS(rockAng) < <1.31> ) - { - rockSpeed = <1.45> - get ABS(rockAng); - turn base to x-axis rockAng speed rockSpeed*5; - turn base to z-axis rockAng speed rockSpeed*5; - wait-for-turn base around x-axis; - wait-for-turn base around z-axis; - rockAng = rockAng + rockDir; - } - rockDir = 0 - rockDir; - rockAng = rockAng + rockDir + rockDir; - } -} - - -#define BASEPIECE base -#define HITSPEED <25.0> -//how 'heavy' the unit is, on a scale of 1-10 -#define UNITSIZE 1 -#define MAXTILT 200 - -#include "unit_hitbyweaponid_and_smoke.h" - -Create() -{ - restore_delay = 3000; - while( get BUILD_PERCENT_LEFT ) - { - sleep 400; - } - start-script RockOnWaves(); - return (0); -} - -static-var Stunned; -ExecuteRestoreAfterDelay() -{ - if (Stunned) { - return (1); - } - turn turret to y-axis <0.000000> speed <90.021978>; - turn launcher to x-axis <0.000000> speed <50.010989>; - - turn doorl to y-axis <0> speed <270>; - - turn doorr to y-axis <0> speed <270>; - - wait-for-turn doorl around y-axis; -} -SetStunned(State) -{ - Stunned = State; - if (!Stunned) { - start-script ExecuteRestoreAfterDelay(); - } -} -RestoreAfterDelay() -{ - sleep restore_delay; - start-script ExecuteRestoreAfterDelay(); -} - -AimPrimary(heading, pitch) -{ - signal SIG_AIM; - set-signal-mask SIG_AIM; - turn doorl to y-axis <135> speed <270>; - - turn doorr to y-axis <-135> speed <270>; - turn turret to y-axis heading speed <80.016484>; - wait-for-turn turret around y-axis; - start-script RestoreAfterDelay(); - return (1); -} - -FirePrimary() -{ - emit-sfx 256 | 3 from flare; - return (0); -} - -AimFromPrimary(piecenum) -{ - piecenum = launcher; - return (0); -} - -QueryPrimary(piecenum) -{ - piecenum = flare; - return (0); -} - -SweetSpot(piecenum) -{ - piecenum = base; - return (0); -} - -Killed(severity, corpsetype) -{ - if( severity <= 25 ) - { - corpsetype = 1 ; - explode base type BITMAPONLY | NOHEATCLOUD; - explode turret type BITMAPONLY | NOHEATCLOUD; - explode launcher type BITMAPONLY | NOHEATCLOUD; - explode flare type BITMAPONLY | NOHEATCLOUD; - explode doorl type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorr type BITMAPONLY | NOHEATCLOUD; - return(corpsetype); - } - if( severity <= 50 ) - { - corpsetype = 2 ; - explode base type BITMAPONLY | NOHEATCLOUD; - explode turret type FALL | NOHEATCLOUD; - explode launcher type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode flare type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorl type FALL | NOHEATCLOUD; - explode doorr type FIRE | SMOKE | FALL | NOHEATCLOUD; - return(corpsetype); - } - if( severity <= 99 ) - { - corpsetype = 3 ; - explode base type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode turret type SMOKE | FALL | NOHEATCLOUD; - explode launcher type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode flare type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorl type SMOKE | FALL | NOHEATCLOUD; - explode doorr type SMOKE | FALL | NOHEATCLOUD; - return(corpsetype); - } - corpsetype = 3 ; - explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode turret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; - explode launcher type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode flare type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorl type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; - explode doorr type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; - return corpsetype; -} diff --git a/scripts/Units/armptl.cob b/scripts/Units/armptl.cob deleted file mode 100644 index e3bf10c70fa..00000000000 Binary files a/scripts/Units/armptl.cob and /dev/null differ diff --git a/scripts/Units/armptl_clean.bos b/scripts/Units/armptl_clean.bos deleted file mode 100644 index 816322b2b88..00000000000 --- a/scripts/Units/armptl_clean.bos +++ /dev/null @@ -1,135 +0,0 @@ - -#include "../recoil_common_includes.h" - -piece base, flare, launcher, turret, doorl, doorr; - -static-var restore_delay; - -// Signal definitions -#define SIGNAL_AIM1 256 - - -#define WATER_ROCK_UNITSIZE 5 -#include "../floatmotion.h" - - -#define BASEPIECE base -#define HITSPEED <25.0> -//how 'heavy' the unit is, on a scale of 1-10 -#define UNITSIZE 1 -#define MAXTILT 200 -#define RECOIL_POWER -50000 -#include "../unit_hitbyweaponid_and_smoke.h" - -Create() -{ - restore_delay = 3000; - SLEEP_UNTIL_UNITFINISHED; - start-script FloatMotion(); -} - -static-var Stunned; -ExecuteRestoreAfterDelay() -{ - if (Stunned) { - return (1); - } - turn turret to y-axis <0.0> speed <90.021978>; - turn launcher to x-axis <0.0> speed <50.010989>; - - turn doorl to y-axis <0> speed <270>; - - turn doorr to y-axis <0> speed <270>; - - wait-for-turn doorl around y-axis; -} -SetStunned(State) -{ - Stunned = State; - if (!Stunned) { - start-script ExecuteRestoreAfterDelay(); - } -} -RestoreAfterDelay() -{ - sleep restore_delay; - start-script ExecuteRestoreAfterDelay(); -} - -AimWeapon1(heading, pitch) -{ - signal SIGNAL_AIM1; - set-signal-mask SIGNAL_AIM1; - turn doorl to y-axis <135> speed <270>; - - turn doorr to y-axis <-135> speed <270>; - turn turret to y-axis heading speed <80.016484>; - wait-for-turn turret around y-axis; - start-script RestoreAfterDelay(); - return (1); -} - -FireWeapon1() -{ - emit-sfx 256 | 3 from flare; - return (0); -} - -AimFromWeapon1(pieceIndex) -{ - pieceIndex = launcher; - return (0); -} - -QueryWeapon1(pieceIndex) -{ - pieceIndex = flare; - return (0); -} - - - -Killed(severity, corpsetype) -{ - if( severity <= 25 ) - { - corpsetype = 1 ; - explode base type BITMAPONLY | NOHEATCLOUD; - explode turret type BITMAPONLY | NOHEATCLOUD; - explode launcher type BITMAPONLY | NOHEATCLOUD; - explode flare type BITMAPONLY | NOHEATCLOUD; - explode doorl type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorr type BITMAPONLY | NOHEATCLOUD; - return(corpsetype); - } - if( severity <= 50 ) - { - corpsetype = 2 ; - explode base type BITMAPONLY | NOHEATCLOUD; - explode turret type FALL | NOHEATCLOUD; - explode launcher type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode flare type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorl type FALL | NOHEATCLOUD; - explode doorr type FIRE | SMOKE | FALL | NOHEATCLOUD; - return(corpsetype); - } - if( severity <= 99 ) - { - corpsetype = 3 ; - explode base type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode turret type SMOKE | FALL | NOHEATCLOUD; - explode launcher type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode flare type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorl type SMOKE | FALL | NOHEATCLOUD; - explode doorr type SMOKE | FALL | NOHEATCLOUD; - return(corpsetype); - } - corpsetype = 3 ; - explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode turret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; - explode launcher type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode flare type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode doorl type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; - explode doorr type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; - return corpsetype; -} diff --git a/scripts/Units/armptl_clean.cob b/scripts/Units/armptl_clean.cob deleted file mode 100644 index 5ca00b61cf1..00000000000 Binary files a/scripts/Units/armptl_clean.cob and /dev/null differ diff --git a/scripts/Units/armraz_clean.bos b/scripts/Units/armraz_clean.bos index 893db010914..fac06e9e5b2 100644 --- a/scripts/Units/armraz_clean.bos +++ b/scripts/Units/armraz_clean.bos @@ -417,11 +417,6 @@ lua_UnitScriptLight(lightIndex, count) return 0; } -lua_UnitScriptDistortion(lightIndex, count) -{ - return 0; -} - RestoreAfterDelay() { @@ -499,10 +494,6 @@ FireWeapon1() // only triggered on first salvo! gun_1 = 0; //dbg(gun_1); - call-script lua_UnitScriptLight(3, shotcount); - call-script lua_UnitScriptLight(4, shotcount); - call-script lua_UnitScriptLight(5, shotcount); - call-script lua_UnitScriptLight(6, shotcount); turn aimy1 to x-axis <-1> now; turn aimy1 to x-axis <0> speed <5>; } @@ -514,8 +505,6 @@ Shot1() gun_1 = (gun_1 + 1) %6; if (gun_1 <= 1) { call-script lua_UnitScriptLight(2 - gun_1, shotcount); - //call-script lua_UnitScriptDistortion(1, shotcount); - call-script lua_UnitScriptDistortion(2 - gun_1, shotcount); shotcount = shotcount + 1; } diff --git a/scripts/Units/armraz_clean.cob b/scripts/Units/armraz_clean.cob index 8e0cacc9c1c..2be666bc548 100644 Binary files a/scripts/Units/armraz_clean.cob and b/scripts/Units/armraz_clean.cob differ diff --git a/scripts/Units/armseer_clean.bos b/scripts/Units/armseer_clean.bos index df52e3fe33d..bd505479c3c 100644 --- a/scripts/Units/armseer_clean.bos +++ b/scripts/Units/armseer_clean.bos @@ -1,7 +1,13 @@ #include "../recoil_common_includes.h" -piece base, dish, turret, eye, fwheel, rwheel; +//piece base, dish, turret, eye, fwheel, rwheel; +piece chassis, dishTower, + dishAStrut, dishA, dishATop1, dishATop2, dishABot1, dishABot2, + dishBStrut, dishB, dishBTop1, dishBTop2, dishBBot1, dishBBot2, + dishCStrut, dishC, dishCTop1, dishCTop2, dishCBot1, dishCBot2, + dishDStrut, dishD, dishDTop1, dishDTop2, dishDBot1, dishDBot2, + lTrack, rTrack, trackGuards; static-var Stunned; diff --git a/scripts/Units/armserp.bos b/scripts/Units/armserp.bos index f4833ad9c1f..d4c9652fbd3 100644 --- a/scripts/Units/armserp.bos +++ b/scripts/Units/armserp.bos @@ -5,12 +5,13 @@ piece lturret, rturret, base, lprop, rprop, bprop; -static-var gun_1, turnClock, turnCounter, wheelSpeed, currentSpeed, moveSpeed, pivotAngle; +static-var turnClock, turnCounter, wheelSpeed, currentSpeed, moveSpeed, pivotAngle; // Signal definitions #define SIG_MOVE 2 #define SIG_AIM 4 +#define SIG_AIM_2 8 #define BASEPIECE base @@ -59,7 +60,6 @@ Propcontrol() Create() { - gun_1 = lturret; moveSpeed = get MAX_SPEED; start-script Propcontrol(); start-script TurnControl(); @@ -87,12 +87,22 @@ StopMoving() FirePrimary() { - gun_1 = !gun_1; + sleep 200; +} + +FireSecondary() +{ + sleep 200; } QueryPrimary(piecenum) { - piecenum = gun_1; + piecenum = lturret; +} + +QuerySecondary(piecenum) +{ + piecenum = rturret; } SweetSpot(piecenum) @@ -128,9 +138,17 @@ AimPrimary(heading, pitch) { signal SIG_AIM; set-signal-mask SIG_AIM; - move rturret to x-axis [9] speed [30]; move lturret to x-axis [-9] speed [30]; - + wait-for-move lturret along x-axis; + start-script RestoreAfterDelay(); + return (1); +} + +AimSecondary(heading, pitch) +{ + signal SIG_AIM_2; + set-signal-mask SIG_AIM_2; + move rturret to x-axis [9] speed [30]; wait-for-move rturret along x-axis; start-script RestoreAfterDelay(); return (1); @@ -140,6 +158,12 @@ AimFromPrimary(piecenum) { piecenum = lturret; } + +AimFromSecondary(piecenum) +{ + piecenum = rturret; +} + Killed(severity, corpsetype) { if( severity <= 25 ) diff --git a/scripts/Units/armserp.cob b/scripts/Units/armserp.cob index 168935f545d..74ccc5a6f58 100644 Binary files a/scripts/Units/armserp.cob and b/scripts/Units/armserp.cob differ diff --git a/scripts/Units/armserp_clean.bos b/scripts/Units/armserp_clean.bos index b879702fa96..cf18fb0a98e 100644 --- a/scripts/Units/armserp_clean.bos +++ b/scripts/Units/armserp_clean.bos @@ -3,12 +3,13 @@ piece lturret, rturret, base, lprop, rprop, bprop; -static-var gun_1, turnClock, turnCounter, wheelSpeed, currentSpeed, moveSpeed, pivotAngle; +static-var turnClock, turnCounter, wheelSpeed, currentSpeed, moveSpeed, pivotAngle; // Signal definitions #define SIGNAL_MOVE 1 #define SIGNAL_AIM1 256 +#define SIGNAL_AIM2 512 #define BASEPIECE base @@ -44,7 +45,6 @@ Propcontrol() Create() { - gun_1 = lturret; call-script TB_Init(); } @@ -68,15 +68,23 @@ StopMoving() FireWeapon1() { - gun_1 = !gun_1; + sleep 200; } -QueryWeapon1(pieceIndex) +FireWeapon2() { - pieceIndex = gun_1; + sleep 200; } +QueryWeapon1(pieceIndex) +{ + pieceIndex = lturret; +} +QueryWeapon2(pieceIndex) +{ + pieceIndex = rturret; +} static-var Stunned; ExecuteRestoreAfterDelay() @@ -106,9 +114,17 @@ AimWeapon1(heading, pitch) { signal SIGNAL_AIM1; set-signal-mask SIGNAL_AIM1; - move rturret to x-axis [9] speed [30]; move lturret to x-axis [-9] speed [30]; - + wait-for-move lturret along x-axis; + start-script RestoreAfterDelay(); + return (1); +} + +AimWeapon2(heading, pitch) +{ + signal SIGNAL_AIM2; + set-signal-mask SIGNAL_AIM2; + move rturret to x-axis [9] speed [30]; wait-for-move rturret along x-axis; start-script RestoreAfterDelay(); return (1); @@ -118,6 +134,12 @@ AimFromWeapon1(pieceIndex) { pieceIndex = lturret; } + +AimFromWeapon2(pieceIndex) +{ + pieceIndex = lturret; +} + Killed(severity, corpsetype) { if( severity <= 25 ) diff --git a/scripts/Units/armserp_clean.cob b/scripts/Units/armserp_clean.cob index b515e2c6793..fe26d3b6c17 100644 Binary files a/scripts/Units/armserp_clean.cob and b/scripts/Units/armserp_clean.cob differ diff --git a/scripts/Units/armsjam.bos b/scripts/Units/armsjam.bos index 36e0703de74..44e71a2ea60 100644 --- a/scripts/Units/armsjam.bos +++ b/scripts/Units/armsjam.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, fork1, fork2, ground, jam; +piece base, fork1, fork2, ground; static-var Static_Var_1, oldHead; static-var recently_damaged, desired_activation; @@ -73,7 +73,6 @@ SmokeUnit(healthpercent, sleeptime, smoketype) Create() { hide ground; - hide jam; recently_damaged = 0; desired_activation = 1; start-script SmokeUnit(); @@ -85,7 +84,6 @@ Activate() signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; desired_activation = 1; - show jam; // if we are in this function, the unit is already on // implied set ACTIVATION to 1; // turn off if unit is in the recently_damaged state @@ -95,8 +93,8 @@ Activate() set ACTIVATION to 0; return(0); } - spin fork1 around z-axis speed <100> accelerate <2>; - spin fork2 around z-axis speed <100> accelerate <2>; + spin fork1 around z-axis speed <100.021978>; + spin fork2 around z-axis speed <100.021978>; } Deactivate() @@ -110,7 +108,6 @@ Deactivate() // unit_paralyze_on_off deactivates this unit before it is // stunned, so it is actually turned off, but we need to wait to see if the // unit is "damaged" by stun. - hide jam; sleep 100; if (recently_damaged == 0) { @@ -119,8 +116,8 @@ Deactivate() } signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; - stop-spin fork1 around z-axis decelerate <4>; - stop-spin fork2 around z-axis decelerate <4>; + stop-spin fork1 around z-axis; + stop-spin fork2 around z-axis; } static-var Stunned; diff --git a/scripts/Units/armsjam.cob b/scripts/Units/armsjam.cob index 5fda55fd3bf..219d2d13244 100644 Binary files a/scripts/Units/armsjam.cob and b/scripts/Units/armsjam.cob differ diff --git a/scripts/Units/armsy.bos b/scripts/Units/armsy.bos index 3970bb18f2a..c92e9fba935 100644 --- a/scripts/Units/armsy.bos +++ b/scripts/Units/armsy.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base,pad, nc1,nc2,nc3,nc4,nt1,nt2,nt3,nt4,nano1,nano2,nano3,nano4,beam1,beam2,beam3,beam4,cagelight,cagelight_emit; +piece base,pad, nc1,nc2,nc3,nc4,nt1,nt2,nt3,nt4,nano1,nano2,nano3,nano4,beam1,beam2,beam3,beam4; static-var spray, statechg_DesiredState, statechg_StateChanging; @@ -147,7 +147,6 @@ Create() hide beam4; hide beam2; hide pad; - hide cagelight_emit; //move base to y-axis [25] now; spray = 0; call-script InitState(); @@ -171,8 +170,6 @@ StartBuilding() show beam2; show beam3; show beam4; - show cagelight_emit; - spin cagelight_emit around z-axis speed <250>; } StopBuilding() @@ -181,8 +178,6 @@ StopBuilding() hide beam2; hide beam3; hide beam4; - hide cagelight_emit; - turn cagelight_emit to z-axis <0> speed <1000>; } Activate() diff --git a/scripts/Units/armsy.cob b/scripts/Units/armsy.cob index bb064c711b5..2ab174e14ca 100644 Binary files a/scripts/Units/armsy.cob and b/scripts/Units/armsy.cob differ diff --git a/scripts/Units/armvang.bos b/scripts/Units/armvang.bos index 4c71f6246c3..42310321877 100644 --- a/scripts/Units/armvang.bos +++ b/scripts/Units/armvang.bos @@ -2,16 +2,14 @@ #include "sfxtype.h" #include "exptype.h" +#include "smart_weapon_select.h" -piece base, turret, flare, barrel, sleeve, rfhip, rfthigh, rfleg, rffoot, lfhip, lfthigh, lfleg, lffoot, lbhip, lbthigh, lbleg, lbankle, rbhip, rbthigh, rbleg, rbankle, aimx1, aimy1; +piece base, turret, flare, barrel, sleeve, rfhip, rfthigh, rfleg, rffoot, lfhip, lfthigh, lfleg, lffoot, lbhip, lbthigh, lbleg, lbankle, rbhip, rbthigh, rbleg, rbankle, aimx1, aimy1, turretmidpoint; -static-var bMoving, oldHeading, bSteering, wpn1_lasthead, last_primary_heading, last_primary_pitch, speedmult, trajectoryMode; +static-var bMoving, oldHeading, bSteering, wpn1_lasthead, last_primary_heading, last_primary_pitch, speedmult; -#define SIG_WALK 2 -#define SIG_AIM 4 - -#define LOW_TRAJECTORY 0 -#define HIGH_TRAJECTORY 1 +#define SIG_WALK 2 +#define SIG_AIM 4 // Generated for N:\animations\armvang_anim_walk_2legs_v2.blend // Using https://github.com/Beherith/Skeletor_S3O @@ -540,25 +538,6 @@ Create() // set last heading values to large negative, ensure first aim waits for the turn last_primary_heading = -1000000; last_primary_pitch = -1000000; - trajectoryMode = LOW_TRAJECTORY; -} - -Activate() -{ - signal SIG_AIM; - trajectoryMode = HIGH_TRAJECTORY; - // set last heading values to large negative, ensure first aim waits for the turn - last_primary_heading = -1000000; - last_primary_pitch = -1000000; -} - -Deactivate() -{ - signal SIG_AIM; - trajectoryMode = LOW_TRAJECTORY; - // set last heading values to large negative, ensure first aim waits for the turn - last_primary_heading = -1000000; - last_primary_pitch = -1000000; } SweetSpot(piecenum) @@ -622,7 +601,7 @@ QueryPrimary(piecenum) AimPrimary(heading, pitch) { - if (trajectoryMode == HIGH_TRAJECTORY) + if (AimingState != AIMING_PRIORITY) { return(0); } @@ -644,7 +623,7 @@ AimPrimary(heading, pitch) last_primary_pitch=pitch; start-script RestoreAfterDelay(); - // Prevent low-trajectory "bonus shots" while high-trajectory is reloading + // Prevent "bonus shots" while alternative weapon is reloading var reloading; reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(2)); if( reloading ) @@ -672,11 +651,11 @@ QuerySecondary(piecenum) AimSecondary(heading, pitch) { - if (trajectoryMode == LOW_TRAJECTORY) + if (AimingState != AIMING_BACKUP) { return(0); } - + signal SIG_AIM; set-signal-mask SIG_AIM; // values in <> are degrees per second @@ -694,14 +673,13 @@ AimSecondary(heading, pitch) last_primary_pitch=pitch; start-script RestoreAfterDelay(); - // Prevent high-trajectory "bonus shots" while low-trajectory is reloading + // Prevent "bonus shots" while alternative weapon is reloading var reloading; reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(1)); if( reloading ) { return(0); } - return (1); } @@ -710,6 +688,16 @@ FireSecondary() call-script fireCommon(); } +QueryTertiary(piecenum) +{ + piecenum = turretmidpoint; +} + +AimTertiary(piecenum) +{ + return (0); +} + Killed(severity, corpsetype) { if( severity <= 25 ) diff --git a/scripts/Units/armvang.cob b/scripts/Units/armvang.cob index 7c2339d90c2..785c9b8f374 100644 Binary files a/scripts/Units/armvang.cob and b/scripts/Units/armvang.cob differ diff --git a/scripts/Units/armveil.bos b/scripts/Units/armveil.bos index 32aaef183bb..445b388e613 100644 --- a/scripts/Units/armveil.bos +++ b/scripts/Units/armveil.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, turret, dish, jam; +piece base, turret, dish; static-var statechg_DesiredState, statechg_StateChanging; static-var Stunned; @@ -11,16 +11,14 @@ static-var Stunned; Go() { - show jam; - spin dish around y-axis speed <60.010989> accelerate <1>; - spin turret around y-axis speed <120.027473> accelerate <2>; + spin dish around y-axis speed <60.010989>; + spin turret around y-axis speed <120.027473>; return (0); } Stop() { - hide jam; - stop-spin dish around y-axis decelerate <4>; - stop-spin turret around y-axis decelerate <5>; + spin dish around y-axis speed <0.000000>; + spin turret around y-axis speed <0.000000>; return (0); } SetStunned(State) diff --git a/scripts/Units/armveil.cob b/scripts/Units/armveil.cob index d89820b1e95..666b6eb222e 100644 Binary files a/scripts/Units/armveil.cob and b/scripts/Units/armveil.cob differ diff --git a/scripts/Units/armzeus.bos b/scripts/Units/armzeus.bos index 89639a1e8bb..f39644bdbc6 100644 --- a/scripts/Units/armzeus.bos +++ b/scripts/Units/armzeus.bos @@ -371,7 +371,7 @@ UnitSpeed(){ maxSpeed = maxSpeed + (maxSpeed /(2*animFramesPerKeyframe)); // add fudge while(TRUE){ animSpeed = (get CURRENT_SPEED); - if (animSpeed<1) animSpeed=1; + \if (animSpeed<1) animSpeed=1; animSpeed = (maxSpeed * 3) / animSpeed; //get PRINT(maxSpeed, animFramesPerKeyframe, animSpeed); //how to print debug info from bos if (animSpeed<1) animSpeed=1; @@ -453,7 +453,7 @@ drawgun() hide gunstatic; show gunhand; - //turn luparm to x-axis <0> speed <360>; //90 arm bleibt beim schie�ssen nun unten + //turn luparm to x-axis <0> speed <360>; //90 arm bleibt beim schiessen nun unten turn ruparm to x-axis <-60> speed <360>; //-179* 720 sleep 125; turn ruparm to x-axis <-10> speed <360>; //0* ****** arm position when shooting (only ruparm, rloarm is in aiming) diff --git a/scripts/Units/corantiship_clean.bos b/scripts/Units/corantiship_clean.bos index 30b3a585693..675b6447cc2 100644 --- a/scripts/Units/corantiship_clean.bos +++ b/scripts/Units/corantiship_clean.bos @@ -1,9 +1,9 @@ #include "../recoil_common_includes.h" -piece ground, base, anti, antiflare, dbl, dbr, dtl, dtr, radar, blink, wake1, wake2, greendbl, greendbr, orangelight; +piece ground, base, anti, antiflare, dbl, dbr, dtl, dtr, radar, blink, wake1, wake2; -static-var Stunned, oldHead, restore_delay, missiles_stockpiled; +static-var Stunned, oldHead; // Signal definitions #define SIGNAL_MOVE 1 @@ -84,11 +84,6 @@ Create() hide blink; hide antiflare; hide ground; - restore_delay = 3000; - missiles_stockpiled = 0; - hide greendbl; - hide greendbr; - show orangelight; start-script InitRockBoat(); SLEEP_UNTIL_UNITFINISHED; @@ -107,10 +102,6 @@ Deactivate() start-script Stop(); } -SetMaxReloadTime(reloadMS) -{ - restore_delay = reloadMS * 2; -} StartMoving(reversing) { @@ -137,8 +128,6 @@ AimWeapon1(heading, pitch) return(1); } - - FireWeapon1() { sleep 150; @@ -154,36 +143,6 @@ AimFromWeapon1(pieceIndex) pieceIndex = antiflare; } -lights_orange() -{ - hide greendbl; - hide greendbr; - show orangelight; -} - -lights_green() -{ - show greendbl; - show greendbr; - hide orangelight; -} - -SetStockpile(num_stockpiled) -{ - if (num_stockpiled == 0) - { - start-script lights_orange(); - sleep 100; - missiles_stockpiled = 0; - } - if (num_stockpiled >= 1) - { - start-script lights_green(); - sleep 100; - missiles_stockpiled = 1; - } -} - Killed(severity, corpsetype) { if( severity <= 25 ) diff --git a/scripts/Units/corantiship_clean.cob b/scripts/Units/corantiship_clean.cob index c342dad54d2..570eb42770b 100644 Binary files a/scripts/Units/corantiship_clean.cob and b/scripts/Units/corantiship_clean.cob differ diff --git a/scripts/Units/corbhmth.bos b/scripts/Units/corbhmth.bos index 3ab5b18f91b..f6d30a8b061 100644 --- a/scripts/Units/corbhmth.bos +++ b/scripts/Units/corbhmth.bos @@ -143,7 +143,7 @@ SmokeVents() while( TRUE ) { emit-sfx 257 from vent; - sleep 100; + sleep 1000; } } diff --git a/scripts/Units/corbhmth_clean.bos b/scripts/Units/corbhmth_clean.bos index 0cbf671363d..c6854ab6f78 100644 --- a/scripts/Units/corbhmth_clean.bos +++ b/scripts/Units/corbhmth_clean.bos @@ -142,7 +142,7 @@ SmokeVents() while( TRUE ) { emit-sfx 257 from vent; - sleep 200; + sleep 1000; } } diff --git a/scripts/Units/corbhmth_clean.cob b/scripts/Units/corbhmth_clean.cob index 2ea9c98cc8e..424231d1daa 100644 Binary files a/scripts/Units/corbhmth_clean.cob and b/scripts/Units/corbhmth_clean.cob differ diff --git a/scripts/Units/corcat_clean.bos b/scripts/Units/corcat_clean.bos index bfdf7891bbd..98c33048090 100644 --- a/scripts/Units/corcat_clean.bos +++ b/scripts/Units/corcat_clean.bos @@ -7,7 +7,7 @@ piece torso, pelvis, rleg, rfoot, lleg, lfoot, head, lthigh, //MAKE SURE FIRE POINTS REMAIN CONSECUTIVE! -static-var isMoving, isAiming, isReady, gun_1, shotcount; +static-var isMoving, isAiming, isReady, gun_1; // Signal definitions #define SIGNAL_AIM1 256 @@ -17,11 +17,6 @@ lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) return 0; } -lua_UnitScriptLight(lightIndex, count) -{ - return 0; -} - // // Author Beherith mysterme@gmail.com. License: GNU GPL v2. // Generated for N:\animations\corcat_anim_walk_v2.blend @@ -706,11 +701,6 @@ AimFromWeapon1(pieceIndex) FireWeapon1() { gun_1 = 0; - call-script lua_UnitScriptLight(1, shotcount); - call-script lua_UnitScriptLight(2, shotcount); - call-script lua_UnitScriptLight(3, shotcount); - call-script lua_UnitScriptLight(4, shotcount); - shotcount = shotcount + 1; } Shot1(zero) { diff --git a/scripts/Units/corcat_clean.cob b/scripts/Units/corcat_clean.cob index 023e105ec2b..cd1e1a32b64 100644 Binary files a/scripts/Units/corcat_clean.cob and b/scripts/Units/corcat_clean.cob differ diff --git a/scripts/Units/corcrwh.bos b/scripts/Units/corcrwh.bos new file mode 100644 index 00000000000..4475b9fb186 --- /dev/null +++ b/scripts/Units/corcrwh.bos @@ -0,0 +1,562 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +//piece base, turretl, sleevel, barrell, flarel, turretr, sleever, barrelr, flarer, + // turretf, sleevef, barrelf, flaref, thrustrr, thrustrl, thrustfr, thrustfl, + // thrustrra, thrustrla, thrustfra, thrustfla; + +piece base, aimy,turretf, sleevef, flaref, + turretaa, sleeveaa, flareaa1, flareaa2, flareaa3, flareaa4, flareaa5, flareaa6, flareaa7, flareaa8, lightaa, aimfromaa, + turretr1, sleever1, barrelr1, flarer1, turretr2, sleever2, barrelr2, flarer2, + turretl1, sleevel1, barrell1, flarel1, turretl2, sleevel2, barrell2, flarel2, + thrustrr, thrustrl, thrustfr, thrustfl, thrustrra, thrustrla, thrustfra, thrustfla; + +static-var restore_delay, aa_gun, wpn1_lasthead; + +// Signal definitions +#define SIG_AIM 4 +#define SIG_AIM_2 8 +#define SIG_AIM_3 16 +#define SIG_AIM_4 32 +#define SIG_AIM_5 64 +#define SIG_AIM_6 128 + +#define BASEPIECE base +#define HITSPEED <55.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 5 +#define MAXTILT 100 + +#define IDLEHOVERSCALE 32 +#define IDLEHOVERSPEED 60 +#define IDLEBASEPIECE base +//#include "idlehover.h" + +static-var Stunned; +ExecuteRestoreAfterDelay() +{ + if (Stunned) { + return (1); + } + + + turn turretaa to y-axis <0> speed <200.00000>; + turn sleeveaa to x-axis <0.00000> speed <200.00000>; + + + turn turretf to x-axis <0> speed <200.000000>; + turn turretf to y-axis <0> speed <200.000000>; + + + turn turretr1 to x-axis <0> speed <200.000000>; + turn turretr1 to y-axis <0> speed <200.000000>; + turn turretr2 to x-axis <0> speed <200.000000>; + turn turretr2 to y-axis <0> speed <200.000000>; + turn turretl1 to x-axis <0> speed <200.000000>; + turn turretl1 to y-axis <0> speed <200.000000>; + turn turretl2 to x-axis <0> speed <200.000000>; + turn turretl2 to y-axis <0> speed <200.000000>; + + wpn1_lasthead = 1000000; + turn base to y-axis <0.000000> speed <250.000000>; + turn base to x-axis <0.000000> speed <250.000000>; + +} +SetStunned(State) +{ + Stunned = State; + if (!Stunned) { + start-script ExecuteRestoreAfterDelay(); + } +} +RestoreAfterDelay() +{ + sleep restore_delay; + start-script ExecuteRestoreAfterDelay(); +} + +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + +Create() +{ + hide thrustrra; + hide thrustfra; + hide thrustrla; + hide thrustfla; + hide flaref; + hide flarel1; + hide flarel2; + hide flarer1; + hide flarer2; + + turn turretf to x-axis <45> speed <200.000000>; + turn turretf to y-axis <0> speed <200.000000>; + + + turn turretr1 to x-axis <45> speed <200.000000>; + turn turretr1 to y-axis <-90> speed <200.000000>; + turn turretr2 to x-axis <45> speed <200.000000>; + turn turretr2 to y-axis <-90> speed <200.000000>; + turn turretl1 to x-axis <45> speed <200.000000>; + turn turretl1 to y-axis <90> speed <200.000000>; + turn turretl2 to x-axis <45> speed <200.000000>; + turn turretl2 to y-axis <90> speed <200.000000>; + + + aa_gun = 0; + wpn1_lasthead = 1000000; + + turn thrustrra to x-axis <-90> now; + turn thrustfra to x-axis <-90> now; + turn thrustrla to x-axis <-90> now; + turn thrustfla to x-axis <-90> now; + while( get BUILD_PERCENT_LEFT ) + { + sleep 400; + } + //start-script IdleHover(); +} + +Activate() +{ + show thrustrra; + show thrustfra; + show thrustrla; + show thrustfla; +} + +Deactivate() +{ + hide thrustrra; + hide thrustfra; + hide thrustrla; + hide thrustfla; +} + +SweetSpot(piecenum) +{ + piecenum = aimy; +} + +//flamer +QueryPrimary(piecenum) +{ + piecenum = flaref; +} +//aa + +QuerySecondary(piecenum) +{ + if( aa_gun == 1 ) piecenum = flareaa1; + if( aa_gun == 2 ) piecenum = flareaa2; + if( aa_gun == 3 ) piecenum = flareaa3; + if( aa_gun == 4 ) piecenum = flareaa1; + if( aa_gun == 5 ) piecenum = flareaa2; + if( aa_gun == 6 ) piecenum = flareaa3; + if( aa_gun == 7 ) piecenum = flareaa1; + if( aa_gun == 8 ) piecenum = flareaa2; + + return (0); +} + + +//sidelasers +QueryWeapon3(piecenum) +{ + piecenum = flarer1; +} +QueryWeapon4(piecenum) +{ + piecenum = flarer2; +} +QueryWeapon5(piecenum) +{ + piecenum = flarel1; +} +QueryWeapon6(piecenum) +{ + piecenum = flarel2; +} +AimFromWeapon3(piecenum) +{ + piecenum = barrelr1; +} +AimFromWeapon4(piecenum) +{ + piecenum = barrelr2; +} +AimFromWeapon5(piecenum) +{ + piecenum = barrell1; +} +AimFromWeapon6(piecenum) +{ + piecenum = barrell2; +} + +//flamer + +AimPrimary(heading, pitch) +{ + signal SIG_AIM; + set-signal-mask SIG_AIM; + + turn turretf to x-axis 0-pitch speed <200.000000>; + turn turretf to y-axis heading speed <200.000000>; + if (((get ABS(wpn1_lasthead - heading)) > 65536) OR(((get ABS(wpn1_lasthead - heading)) > 1300) AND ((get ABS(wpn1_lasthead - heading)) < 64236))) + { + wpn1_lasthead = 1000000; + wait-for-turn turretf around y-axis; + wait-for-turn turretf around x-axis; + } + wpn1_lasthead = heading; + start-script RestoreAfterDelay(); + return (1); +} + +FirePrimary() +{ + return (1); +} +Shot1() { + call-script lua_FlameShot(1); + emit-sfx 1024 + 0 from flaref; +} +//aa + +AimSecondary(heading, pitch) +{ + signal SIG_AIM_2; + set-signal-mask SIG_AIM_2; + + turn turretaa to y-axis heading speed <450.00000>; + turn sleeveaa to x-axis <0.00000> - pitch speed <450.00000>; + wait-for-turn sleeveaa around z-axis; + wait-for-turn turretaa around y-axis; + start-script RestoreAfterDelay();//todo, split these + return (1); +} + + +FireSecondary() +{ + ++aa_gun; + if( aa_gun == 9 ) + { + aa_gun = flareaa1; + } + return (0); +} + + +//sidelasers + + +AimWeapon3(heading, pitch) +{ + signal SIG_AIM_3; + set-signal-mask SIG_AIM_3; + + + turn turretr1 to x-axis 0-pitch speed <200.000000>; + turn turretr1 to y-axis heading speed <200.000000>; + wait-for-turn turretr1 around x-axis; + wait-for-turn turretr1 around y-axis; + return (1); +} + +FireWeapon3() +{ + sleep 100; +} + + +AimWeapon4(heading, pitch) +{ + signal SIG_AIM_4; + set-signal-mask SIG_AIM_4; + + turn turretr2 to x-axis 0-pitch speed <200.000000>; + turn turretr2 to y-axis heading speed <200.000000>; + wait-for-turn turretr2 around x-axis; + wait-for-turn turretr2 around y-axis; + return (1); +} + +FireWeapon4() +{ + sleep 100; +} + +AimWeapon5(heading, pitch) +{ + signal SIG_AIM_5; + set-signal-mask SIG_AIM_5; + + turn turretl1 to x-axis 0-pitch speed <200.000000>; + turn turretl1 to y-axis heading speed <200.000000>; + wait-for-turn turretl1 around x-axis; + wait-for-turn turretl1 around y-axis; + return (1); +} + +FireWeapon5() +{ + sleep 100; +} + + +AimWeapon6(heading, pitch) +{ + signal SIG_AIM_6; + set-signal-mask SIG_AIM_6; + + turn turretl2 to x-axis 0-pitch speed <200.000000>; + turn turretl2 to y-axis heading speed <200.000000>; + wait-for-turn turretl2 around x-axis; + wait-for-turn turretl2 around y-axis; + return (1); +} + +FireWeapon6() +{ + sleep 100; +} + + + +SetMaxReloadTime(Func_Var_1) +{ + restore_delay = Func_Var_1 * 2; +} + +StartMoving() +{ + sleep 1000; +} + +StopMoving() +{ +} + +MoveRate0() +{ + turn thrustrr to x-axis <0.000000> speed <80.000000>; + turn thrustrl to x-axis <0.000000> speed <80.000000>; + turn thrustfr to x-axis <0.000000> speed <80.000000>; + turn thrustfl to x-axis <0.000000> speed <80.000000>; +} + +MoveRate1() +{ + turn thrustrr to x-axis <8.000000> speed <60.000000>; + turn thrustrl to x-axis <8.000000> speed <60.000000>; + turn thrustfr to x-axis <8.000000> speed <60.000000>; + turn thrustfl to x-axis <8.000000> speed <60.000000>; +} + +MoveRate2() +{ + turn thrustrr to x-axis <18.000000> speed <45.000000>; + turn thrustrl to x-axis <18.000000> speed <45.000000>; + turn thrustfr to x-axis <18.000000> speed <45.000000>; + turn thrustfl to x-axis <18.000000> speed <45.000000>; +} + +MoveRate3() +{ + turn thrustrr to x-axis <0.000000> speed <70.000000>; + turn thrustrl to x-axis <0.000000> speed <70.000000>; + turn thrustfr to x-axis <0.000000> speed <70.000000>; + turn thrustfl to x-axis <0.000000> speed <70.000000>; +} + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode thrustfl type BITMAPONLY | NOHEATCLOUD; + explode thrustfla type BITMAPONLY | NOHEATCLOUD; + explode thrustrl type BITMAPONLY | NOHEATCLOUD; + explode thrustrla type BITMAPONLY | NOHEATCLOUD; + explode thrustfr type BITMAPONLY | NOHEATCLOUD; + explode thrustfra type BITMAPONLY | NOHEATCLOUD; + explode thrustrr type BITMAPONLY | NOHEATCLOUD; + explode thrustrra type BITMAPONLY | NOHEATCLOUD; + explode turretr1 type BITMAPONLY | NOHEATCLOUD; + explode sleever1 type BITMAPONLY | NOHEATCLOUD; + explode barrelr1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flarer1 type BITMAPONLY | NOHEATCLOUD; + explode turretl1 type BITMAPONLY | NOHEATCLOUD; + explode sleevel1 type BITMAPONLY | NOHEATCLOUD; + explode barrell1 type BITMAPONLY | NOHEATCLOUD; + explode flarel1 type BITMAPONLY | NOHEATCLOUD; + explode turretr2 type BITMAPONLY | NOHEATCLOUD; + explode sleever2 type BITMAPONLY | NOHEATCLOUD; + explode barrelr2 type BITMAPONLY | NOHEATCLOUD; + explode flarer2 type BITMAPONLY | NOHEATCLOUD; + explode turretl2 type BITMAPONLY | NOHEATCLOUD; + explode sleevel2 type BITMAPONLY | NOHEATCLOUD; + explode barrell2 type BITMAPONLY | NOHEATCLOUD; + explode flarel2 type BITMAPONLY | NOHEATCLOUD; + explode turretaa type BITMAPONLY | NOHEATCLOUD; + explode sleeveaa type BITMAPONLY | NOHEATCLOUD; + explode flareaa1 type BITMAPONLY | NOHEATCLOUD; + explode flareaa2 type BITMAPONLY | NOHEATCLOUD; + explode flareaa3 type BITMAPONLY | NOHEATCLOUD; + explode flareaa4 type BITMAPONLY | NOHEATCLOUD; + explode flareaa5 type BITMAPONLY | NOHEATCLOUD; + explode flareaa6 type BITMAPONLY | NOHEATCLOUD; + explode flareaa7 type BITMAPONLY | NOHEATCLOUD; + explode flareaa8 type BITMAPONLY | NOHEATCLOUD; + explode lightaa type BITMAPONLY | NOHEATCLOUD; + explode aimfromaa type BITMAPONLY | NOHEATCLOUD; + explode aimy type BITMAPONLY | NOHEATCLOUD; + explode turretf type BITMAPONLY | NOHEATCLOUD; + explode sleevef type BITMAPONLY | NOHEATCLOUD; + explode flaref type BITMAPONLY | NOHEATCLOUD; + return(0); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode thrustfl type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustfla type FALL | NOHEATCLOUD; + explode thrustrl type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrla type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustfr type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustfra type FALL | NOHEATCLOUD; + explode thrustrr type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrra type FALL | NOHEATCLOUD; + explode turretr1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleever1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrelr1 type FALL | NOHEATCLOUD; + explode flarer1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretl1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleevel1 type FALL | NOHEATCLOUD; + explode barrell1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flarel1 type FALL | NOHEATCLOUD; + explode turretr2 type FALL | NOHEATCLOUD; + explode sleever2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrelr2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flarer2 type FALL | NOHEATCLOUD; + explode turretl2 type FALL | NOHEATCLOUD; + explode sleevel2 type FALL | NOHEATCLOUD; + explode barrell2 type FALL | NOHEATCLOUD; + explode flarel2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretaa type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleeveaa type FALL | NOHEATCLOUD; + explode flareaa1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa3 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa4 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa5 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa6 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa7 type FALL | NOHEATCLOUD; + explode flareaa8 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode lightaa type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode aimfromaa type FALL | NOHEATCLOUD; + explode aimy type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretf type FALL | NOHEATCLOUD; + explode sleevef type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flaref type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(0); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode thrustfl type SMOKE | FALL | NOHEATCLOUD; + explode thrustfla type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrl type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrla type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode thrustfr type SMOKE | FALL | NOHEATCLOUD; + explode thrustfra type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrr type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrra type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretr1 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode sleever1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrelr1 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode flarer1 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode turretl1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleevel1 type SMOKE | FALL | NOHEATCLOUD; + explode barrell1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flarel1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretr2 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode sleever2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrelr2 type SMOKE | FALL | NOHEATCLOUD; + explode flarer2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretl2 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode sleevel2 type SMOKE | FALL | NOHEATCLOUD; + explode barrell2 type SMOKE | FALL | NOHEATCLOUD; + explode flarel2 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode turretaa type SMOKE | FALL | NOHEATCLOUD; + explode sleeveaa type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode flareaa1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa2 type SMOKE | FALL | NOHEATCLOUD; + explode flareaa3 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode flareaa4 type SMOKE | FALL | NOHEATCLOUD; + explode flareaa5 type SMOKE | FALL | NOHEATCLOUD; + explode flareaa6 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode flareaa7 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa8 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode lightaa type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode aimfromaa type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode aimy type SMOKE | FALL | NOHEATCLOUD; + explode turretf type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleevef type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flaref type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return(0); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode thrustfl type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode thrustfla type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrl type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode thrustrla type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode thrustfr type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode thrustfra type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode thrustrr type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode thrustrra type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode turretr1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode sleever1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrelr1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flarer1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode turretl1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleevel1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode barrell1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flarel1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode turretr2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleever2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrelr2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode flarer2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretl2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode sleevel2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrell2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flarel2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretaa type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleeveaa type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode flareaa2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode flareaa3 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa4 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa5 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flareaa6 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode flareaa7 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode flareaa8 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode lightaa type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode aimfromaa type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode aimy type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turretf type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode sleevef type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flaref type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; +} \ No newline at end of file diff --git a/scripts/Units/corcrwh.cob b/scripts/Units/corcrwh.cob new file mode 100644 index 00000000000..3d95734386e Binary files /dev/null and b/scripts/Units/corcrwh.cob differ diff --git a/scripts/Units/corcrwh_clean.bos b/scripts/Units/corcrwh_clean.bos index 094f4db7bf5..216e0b8da1e 100644 --- a/scripts/Units/corcrwh_clean.bos +++ b/scripts/Units/corcrwh_clean.bos @@ -75,6 +75,10 @@ RestoreAfterDelay() start-script ExecuteRestoreAfterDelay(); } +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} Create() { @@ -212,6 +216,7 @@ FireWeapon1() return (1); } Shot1() { + call-script lua_FlameShot(1); emit-sfx 1024 + 0 from flaref; } //aa diff --git a/scripts/Units/corcrwh_clean.cob b/scripts/Units/corcrwh_clean.cob index f284e7c1346..dd602345ddd 100644 Binary files a/scripts/Units/corcrwh_clean.cob and b/scripts/Units/corcrwh_clean.cob differ diff --git a/scripts/Units/cordemon.bos b/scripts/Units/cordemon.bos new file mode 100644 index 00000000000..2d4e8d4a11c --- /dev/null +++ b/scripts/Units/cordemon.bos @@ -0,0 +1,1353 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece pelvis, torso, rthigh, rleg, rfoot, lthigh, lleg, lfoot,lbturret, lbbarrel1, lbbarrel2, rbturret, +rbbarrel1, rbbarrel2,luparm, llarm, lfbarrel1, lfbarrel2,ruparm, rlarm, rfbarrel1, rfbarrel2, +lfflare1, lfflare2, rfflare1, rfflare2,lbflare, rbflare, head, horns, aimx1, aimy1, aaturretl, aaturretr, boxl, boxr, aaflarel, aaflarer; + +static-var gun_1, bMoving, bAiming, gun_2, targetswap, oldheading, isfiring, issmoking, shotcount, lightcount1, lightcount2; + +static-var animSpeed, maxSpeed, animFramesPerKeyframe; + +// Signal definitions +#define SIG_AIM 2 +#define SIG_WALK 4 +#define SIG_AIM_2 8 +#define SIG_FIRE1 16 + +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + + +Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations\corkarg_anim_walk.blend + set-signal-mask SIG_WALK; + if (bMoving) { //Frame:7 + turn lbturret to x-axis <-2.000000> speed <60.000000> / animSpeed; + turn lbturret to z-axis <-2.000000> speed <60.000000> / animSpeed; + turn lbturret to y-axis <2.000000> speed <60.000000> / animSpeed; + turn lfoot to x-axis <-16.258053> speed <487.741589> / animSpeed; + turn lfoot to z-axis <4.468625> speed <134.058757> / animSpeed; + turn lfoot to y-axis <-4.157313> speed <124.719387> / animSpeed; + turn lleg to x-axis <-20.219863> speed <606.595896> / animSpeed; + turn lleg to z-axis <-16.796834> speed <503.905010> / animSpeed; + turn lleg to y-axis <-3.716742> speed <111.502266> / animSpeed; + turn lthigh to x-axis <32.121430> speed <963.642908> / animSpeed; + turn lthigh to z-axis <15.117084> speed <453.512506> / animSpeed; + turn lthigh to y-axis <0.185975> speed <5.579236> / animSpeed; + move pelvis to y-axis [1.070645] speed [32.119356] / animSpeed; + turn rbturret to x-axis <-2.000000> speed <60.000000> / animSpeed; + turn rbturret to z-axis <-1.500000> speed <45.000001> / animSpeed; + turn rbturret to y-axis <1.500000> speed <45.000001> / animSpeed; + turn rfoot to x-axis <15.484350> speed <464.530301> / animSpeed; + turn rfoot to z-axis <-9.027691> speed <270.830721> / animSpeed; + turn rfoot to y-axis <-6.166939> speed <185.008155> / animSpeed; + turn rleg to x-axis <15.204647> speed <456.139396> / animSpeed; + turn rleg to z-axis <1.894440> speed <56.833202> / animSpeed; + turn rleg to y-axis <2.431542> speed <72.946267> / animSpeed; + turn rthigh to x-axis <-36.154257> speed <1084.627722> / animSpeed; + turn rthigh to z-axis <3.032219> speed <90.966581> / animSpeed; + turn rthigh to y-axis <12.533713> speed <376.011391> / animSpeed; + + turn ruparm to x-axis <16.996113> speed <509.883389> / animSpeed; + turn ruparm to z-axis <8.247604> speed <247.428111> / animSpeed; + turn luparm to x-axis <16.996101> speed <509.883030> / animSpeed; + turn luparm to z-axis <-10.117573> speed <303.527186> / animSpeed; + turn torso to x-axis <-1.997258> speed <59.917736> / animSpeed; + turn torso to z-axis <0.104714> speed <3.141430> / animSpeed; + turn rlarm to x-axis <-30.950251> speed <928.507527> / animSpeed; + turn rlarm to z-axis <-1.239022> speed <37.170674> / animSpeed; + turn llarm to x-axis <-26.801591> speed <804.047718> / animSpeed; + turn llarm to z-axis <1.239022> speed <37.170664> / animSpeed; + if (!bAiming) { + turn ruparm to y-axis <1.015624> speed <30.468725> / animSpeed; + turn luparm to y-axis <-1.015624> speed <30.468725> / animSpeed; + turn torso to y-axis <-3.001825> speed <90.054764> / animSpeed; + turn rlarm to y-axis <0.393403> speed <11.802102> / animSpeed; + turn llarm to y-axis <-0.393403> speed <11.802103> / animSpeed; + } + sleep 197; + } + while(bMoving) { + if (bMoving) { //Frame:13 + turn head to x-axis <5.115616> speed <153.468472> / animSpeed; + turn head to z-axis <-0.781383> speed <23.441488> / animSpeed; + turn head to y-axis <-5.785355> speed <173.560652> / animSpeed; + turn lbturret to x-axis <3.000000> speed <150.000002> / animSpeed; + turn lbturret to z-axis <-1.000000> speed <30.000000> / animSpeed; + turn lbturret to y-axis <1.000000> speed <30.000000> / animSpeed; + turn lfoot to x-axis <14.684955> speed <928.290225> / animSpeed; + turn lfoot to z-axis <7.411860> speed <88.297044> / animSpeed; + turn lfoot to y-axis <-5.309413> speed <34.563015> / animSpeed; + turn lleg to x-axis <-13.520025> speed <200.995153> / animSpeed; + turn lleg to z-axis <-21.398069> speed <138.037064> / animSpeed; + turn lleg to y-axis <-7.369687> speed <109.588345> / animSpeed; + turn lthigh to x-axis <46.716390> speed <437.848799> / animSpeed; + turn lthigh to z-axis <20.076455> speed <148.781140> / animSpeed; + turn lthigh to y-axis <-5.847293> speed <180.998024> / animSpeed; + move pelvis to y-axis [0.000000] speed [32.119356] / animSpeed; + turn rbturret to x-axis <3.000000> speed <150.000002> / animSpeed; + turn rbturret to z-axis <-3.000000> speed <45.000001> / animSpeed; + turn rbturret to y-axis <3.000000> speed <45.000001> / animSpeed; + turn rfoot to x-axis <16.979029> speed <44.840380> / animSpeed; + turn rfoot to z-axis <-9.591265> speed <16.907228> / animSpeed; + turn rfoot to y-axis <-26.473596> speed <609.199709> / animSpeed; + turn rleg to x-axis <-42.743655> speed <1738.449049> / animSpeed; + turn rleg to z-axis <18.722739> speed <504.848959> / animSpeed; + turn rleg to y-axis <12.349952> speed <297.552291> / animSpeed; + turn rthigh to x-axis <-13.404572> speed <682.490576> / animSpeed; + turn rthigh to z-axis <-5.432731> speed <253.948517> / animSpeed; + turn rthigh to y-axis <10.547575> speed <59.584137> / animSpeed; + + turn llarm to x-axis <-14.486900> speed <369.440732> / animSpeed; + turn llarm to z-axis <-0.261755> speed <45.023310> / animSpeed; + turn ruparm to x-axis <35.631202> speed <559.052657> / animSpeed; + turn ruparm to z-axis <3.625839> speed <138.652934> / animSpeed; + turn torso to x-axis <-0.000000> speed <59.917736> / animSpeed; + turn torso to z-axis <-0.000000> speed <3.141430> / animSpeed; + turn rlarm to x-axis <-40.672028> speed <291.653312> / animSpeed; + turn rlarm to z-axis <-2.739799> speed <45.023306> / animSpeed; + turn luparm to x-axis <-1.638990> speed <559.052727> / animSpeed; + turn luparm to z-axis <-3.608069> speed <195.285123> / animSpeed; + if (!bAiming) { + turn llarm to y-axis <-0.050031> speed <10.301184> / animSpeed; + turn ruparm to y-axis <1.804893> speed <23.678055> / animSpeed; + turn torso to y-axis <-4.999999> speed <59.945219> / animSpeed; + turn rlarm to y-axis <0.736776> speed <10.301184> / animSpeed; + turn luparm to y-axis <-0.226356> speed <23.678055> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:19 + turn head to x-axis <10.231231> speed <153.468472> / animSpeed; + turn head to z-axis <-1.562766> speed <23.441488> / animSpeed; + turn head to y-axis <-11.570710> speed <173.560652> / animSpeed; + turn lbturret to x-axis <-2.000000> speed <150.000002> / animSpeed; + turn lbturret to z-axis <-0.000000> speed <30.000000> / animSpeed; + turn lbturret to y-axis <0.000000> speed <30.000000> / animSpeed; + turn lfoot to x-axis <-23.150528> speed <1135.064486> / animSpeed; + turn lfoot to z-axis <5.376260> speed <61.068013> / animSpeed; + turn lfoot to y-axis <4.989234> speed <308.959415> / animSpeed; + turn lleg to x-axis <62.214923> speed <2272.048426> / animSpeed; + turn lleg to z-axis <8.794883> speed <905.788559> / animSpeed; + turn lleg to y-axis <-9.334244> speed <58.936712> / animSpeed; + turn lthigh to x-axis <7.490716> speed <1176.770219> / animSpeed; + turn lthigh to z-axis <13.742071> speed <190.031521> / animSpeed; + turn lthigh to y-axis <-2.141868> speed <111.162750> / animSpeed; + move pelvis to y-axis [-2.000000] speed [60.000000] / animSpeed; + turn rbturret to x-axis <-2.000000> speed <150.000002> / animSpeed; + turn rbturret to z-axis <2.000000> speed <150.000002> / animSpeed; + turn rbturret to y-axis <-2.000000> speed <150.000002> / animSpeed; + turn rfoot to x-axis <22.481716> speed <165.080618> / animSpeed; + turn rfoot to z-axis <-2.093311> speed <224.938618> / animSpeed; + turn rfoot to y-axis <-0.761537> speed <771.361771> / animSpeed; + turn rleg to x-axis <2.252379> speed <1349.881026> / animSpeed; + turn rleg to z-axis <4.897235> speed <414.765099> / animSpeed; + turn rleg to y-axis <5.887931> speed <193.860632> / animSpeed; + turn rthigh to x-axis <-23.493172> speed <302.658002> / animSpeed; + turn rthigh to y-axis <7.354512> speed <95.791892> / animSpeed; + + turn llarm to x-axis <-8.889314> speed <167.927577> / animSpeed; + turn llarm to z-axis <-0.943926> speed <20.465139> / animSpeed; + turn luparm to x-axis <-10.109488> speed <254.114958> / animSpeed; + turn luparm to z-axis <-1.076476> speed <75.947770> / animSpeed; + turn rlarm to x-axis <-44.713868> speed <121.255187> / animSpeed; + turn rlarm to z-axis <-3.421970> speed <20.465134> / animSpeed; + turn ruparm to x-axis <44.101691> speed <254.114695> / animSpeed; + turn ruparm to z-axis <1.258670> speed <71.015082> / animSpeed; + turn torso to x-axis <1.989039> speed <59.671177> / animSpeed; + turn torso to z-axis <-0.209141> speed <6.274228> / animSpeed; + if (!bAiming) { + turn luparm to y-axis <0.132403> speed <10.762751> / animSpeed; + turn rlarm to y-axis <0.892855> speed <4.682357> / animSpeed; + turn ruparm to y-axis <2.163651> speed <10.762754> / animSpeed; + turn torso to y-axis <-6.003630> speed <30.108930> / animSpeed; + turn llarm to y-axis <0.106048> speed <4.682356> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:25 + turn head to x-axis <5.115616> speed <153.468472> / animSpeed; + turn head to z-axis <-0.781383> speed <23.441488> / animSpeed; + turn head to y-axis <-7.960355> speed <108.310655> / animSpeed; + turn lbturret to x-axis <-4.000000> speed <60.000000> / animSpeed; + turn lbturret to z-axis <1.000000> speed <29.999997> / animSpeed; + turn lbturret to y-axis <-1.000000> speed <29.999997> / animSpeed; + turn lfoot to x-axis <2.682528> speed <774.991689> / animSpeed; + turn lfoot to z-axis <7.893599> speed <75.520189> / animSpeed; + turn lfoot to y-axis <2.673194> speed <69.481203> / animSpeed; + turn lleg to x-axis <53.006311> speed <276.258339> / animSpeed; + turn lleg to z-axis <-3.143738> speed <358.158638> / animSpeed; + turn lleg to y-axis <0.967541> speed <309.053540> / animSpeed; + turn lthigh to x-axis <-27.653623> speed <1054.330164> / animSpeed; + turn lthigh to z-axis <3.509623> speed <306.973431> / animSpeed; + turn lthigh to y-axis <-8.527999> speed <191.583938> / animSpeed; + move pelvis to y-axis [0.000000] speed [60.000000] / animSpeed; + turn rbturret to x-axis <-4.000000> speed <60.000000> / animSpeed; + turn rbturret to z-axis <4.000000> speed <60.000000> / animSpeed; + turn rbturret to y-axis <-4.000000> speed <60.000000> / animSpeed; + turn rfoot to x-axis <-0.670919> speed <694.579052> / animSpeed; + turn rfoot to z-axis <2.975967> speed <152.078335> / animSpeed; + turn rfoot to y-axis <0.538870> speed <39.012228> / animSpeed; + turn rleg to x-axis <6.526784> speed <128.232149> / animSpeed; + turn rleg to z-axis <5.196882> speed <8.989404> / animSpeed; + turn rleg to y-axis <5.407822> speed <14.403255> / animSpeed; + turn rthigh to x-axis <-3.574738> speed <597.553018> / animSpeed; + turn rthigh to z-axis <-9.399787> speed <118.028525> / animSpeed; + turn rthigh to y-axis <2.904056> speed <133.513688> / animSpeed; + + turn llarm to x-axis <-19.154144> speed <307.944901> / animSpeed; + turn llarm to z-axis <-0.261755> speed <20.465145> / animSpeed; + turn luparm to x-axis <-1.638986> speed <254.115066> / animSpeed; + turn luparm to z-axis <-3.504354> speed <72.836316> / animSpeed; + turn rlarm to x-axis <-39.116282> speed <167.927577> / animSpeed; + turn rlarm to z-axis <-2.739799> speed <20.465134> / animSpeed; + turn ruparm to x-axis <35.631191> speed <254.115002> / animSpeed; + turn ruparm to z-axis <3.827077> speed <77.052218> / animSpeed; + turn torso to x-axis <-0.000000> speed <59.671177> / animSpeed; + turn torso to z-axis <-0.000000> speed <6.274228> / animSpeed; + if (!bAiming) { + turn llarm to y-axis <-0.050031> speed <4.682357> / animSpeed; + turn luparm to y-axis <-0.226356> speed <10.762752> / animSpeed; + turn rlarm to y-axis <0.736776> speed <4.682356> / animSpeed; + turn ruparm to y-axis <1.804893> speed <10.762754> / animSpeed; + turn torso to y-axis <0.000000> speed <180.108912> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:31 + turn head to x-axis <-0.000000> speed <153.468472> / animSpeed; + turn head to z-axis <-0.000000> speed <23.441488> / animSpeed; + turn head to y-axis <0.000000> speed <238.810649> / animSpeed; + turn lbturret to x-axis <-2.000000> speed <60.000000> / animSpeed; + turn lbturret to z-axis <2.000000> speed <30.000003> / animSpeed; + turn lbturret to y-axis <-2.000000> speed <30.000003> / animSpeed; + turn lfoot to x-axis <13.534574> speed <325.561379> / animSpeed; + turn lfoot to z-axis <3.784626> speed <123.269192> / animSpeed; + turn lfoot to y-axis <15.811965> speed <394.163133> / animSpeed; + turn lleg to x-axis <16.636324> speed <1091.099617> / animSpeed; + turn lleg to z-axis <-1.906942> speed <37.103884> / animSpeed; + turn lleg to y-axis <-2.268857> speed <97.091938> / animSpeed; + turn lthigh to x-axis <-36.741278> speed <272.629664> / animSpeed; + turn lthigh to z-axis <-1.420526> speed <147.904461> / animSpeed; + turn lthigh to y-axis <-12.940526> speed <132.375802> / animSpeed; + move pelvis to y-axis [1.070645] speed [32.119356] / animSpeed; + turn rbturret to x-axis <-2.000000> speed <60.000000> / animSpeed; + turn rbturret to z-axis <2.000000> speed <60.000000> / animSpeed; + turn rbturret to y-axis <-2.000000> speed <60.000000> / animSpeed; + turn rfoot to x-axis <-19.062489> speed <551.747115> / animSpeed; + turn rfoot to z-axis <-14.793976> speed <533.098292> / animSpeed; + turn rfoot to y-axis <-11.442735> speed <359.448172> / animSpeed; + turn rleg to x-axis <-20.273405> speed <804.005674> / animSpeed; + turn rleg to z-axis <13.695447> speed <254.956947> / animSpeed; + turn rleg to y-axis <3.306414> speed <63.042240> / animSpeed; + turn rthigh to x-axis <31.903575> speed <1064.349367> / animSpeed; + turn rthigh to z-axis <-16.989962> speed <227.705248> / animSpeed; + turn rthigh to y-axis <0.427039> speed <74.310497> / animSpeed; + + turn llarm to x-axis <-30.950251> speed <353.883217> / animSpeed; + turn llarm to z-axis <1.239022> speed <45.023314> / animSpeed; + turn luparm to x-axis <16.996113> speed <559.052977> / animSpeed; + turn luparm to z-axis <-8.247604> speed <142.297502> / animSpeed; + turn rlarm to x-axis <-26.801591> speed <369.440732> / animSpeed; + turn rlarm to z-axis <-1.239022> speed <45.023316> / animSpeed; + turn ruparm to x-axis <16.996101> speed <559.052708> / animSpeed; + turn ruparm to z-axis <10.117573> speed <188.714874> / animSpeed; + turn torso to x-axis <-1.997258> speed <59.917736> / animSpeed; + turn torso to z-axis <-0.104714> speed <3.141430> / animSpeed; + if(!bAiming) { + turn llarm to y-axis <-0.393403> speed <10.301183> / animSpeed; + turn luparm to y-axis <-1.015624> speed <23.678055> / animSpeed; + turn rlarm to y-axis <0.393403> speed <10.301185> / animSpeed; + turn ruparm to y-axis <1.015624> speed <23.678055> / animSpeed; + turn torso to y-axis <3.001825> speed <90.054764> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:37 + turn head to x-axis <5.115616> speed <153.468472> / animSpeed; + turn head to z-axis <-0.781383> speed <23.441488> / animSpeed; + turn head to y-axis <7.989644> speed <239.689310> / animSpeed; + turn lbturret to x-axis <3.000000> speed <150.000002> / animSpeed; + turn lbturret to z-axis <3.000000> speed <30.000003> / animSpeed; + turn lbturret to y-axis <-3.000000> speed <30.000003> / animSpeed; + turn lfoot to x-axis <20.262972> speed <201.851940> / animSpeed; + turn lfoot to z-axis <5.234529> speed <43.497095> / animSpeed; + turn lfoot to y-axis <5.980149> speed <294.954471> / animSpeed; + turn lleg to x-axis <-39.337669> speed <1679.219783> / animSpeed; + turn lleg to z-axis <-20.597836> speed <560.726800> / animSpeed; + turn lleg to y-axis <-10.348217> speed <242.380797> / animSpeed; + turn lthigh to x-axis <-14.949358> speed <653.757601> / animSpeed; + turn lthigh to z-axis <4.258544> speed <170.372099> / animSpeed; + turn lthigh to y-axis <-9.720740> speed <96.593585> / animSpeed; + move pelvis to y-axis [0.000000] speed [32.119356] / animSpeed; + turn rbturret to x-axis <3.000000> speed <150.000002> / animSpeed; + turn rfoot to x-axis <12.209921> speed <938.172313> / animSpeed; + turn rfoot to z-axis <-12.785014> speed <60.268881> / animSpeed; + turn rfoot to y-axis <-11.224617> speed <6.543560> / animSpeed; + turn rleg to x-axis <-13.182489> speed <212.727488> / animSpeed; + turn rleg to z-axis <18.496156> speed <144.021258> / animSpeed; + turn rleg to y-axis <6.772366> speed <103.978540> / animSpeed; + turn rthigh to x-axis <46.669617> speed <442.981276> / animSpeed; + turn rthigh to z-axis <-21.916293> speed <147.789909> / animSpeed; + turn rthigh to y-axis <6.159252> speed <171.966396> / animSpeed; + + turn llarm to x-axis <-40.672028> speed <291.653312> / animSpeed; + turn llarm to z-axis <2.739799> speed <45.023306> / animSpeed; + turn luparm to x-axis <35.631202> speed <559.052657> / animSpeed; + turn luparm to z-axis <-3.625839> speed <138.652934> / animSpeed; + turn rlarm to x-axis <-14.486900> speed <369.440732> / animSpeed; + turn rlarm to z-axis <0.261755> speed <45.023310> / animSpeed; + turn ruparm to x-axis <-1.638990> speed <559.052727> / animSpeed; + turn ruparm to z-axis <3.608069> speed <195.285123> / animSpeed; + turn torso to x-axis <-0.000000> speed <59.917736> / animSpeed; + turn torso to z-axis <-0.000000> speed <3.141430> / animSpeed; + if (!bAiming) { + turn luparm to y-axis <-1.804893> speed <23.678055> / animSpeed; + turn llarm to y-axis <-0.736776> speed <10.301184> / animSpeed; + turn rlarm to y-axis <0.050031> speed <10.301184> / animSpeed; + turn ruparm to y-axis <0.226356> speed <23.678055> / animSpeed; + turn torso to y-axis <4.999999> speed <59.945219> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:43 + turn head to x-axis <10.231231> speed <153.468472> / animSpeed; + turn head to z-axis <-1.562766> speed <23.441488> / animSpeed; + turn head to y-axis <11.629288> speed <109.189317> / animSpeed; + turn lbturret to x-axis <-2.000000> speed <150.000002> / animSpeed; + turn lbturret to z-axis <-2.000000> speed <150.000002> / animSpeed; + turn lbturret to y-axis <2.000000> speed <150.000002> / animSpeed; + turn lfoot to x-axis <21.491052> speed <36.842399> / animSpeed; + turn lfoot to z-axis <0.548920> speed <140.568280> / animSpeed; + turn lfoot to y-axis <3.951416> speed <60.861980> / animSpeed; + turn llarm to x-axis <-44.713868> speed <121.255187> / animSpeed; + turn llarm to z-axis <3.421970> speed <20.465134> / animSpeed; + turn llarm to y-axis <-0.892855> speed <4.682357> / animSpeed; + turn lleg to x-axis <2.608436> speed <1258.383150> / animSpeed; + turn lleg to z-axis <-4.650761> speed <478.412246> / animSpeed; + turn lleg to y-axis <-5.879756> speed <134.053852> / animSpeed; + turn lthigh to x-axis <-23.540889> speed <257.745931> / animSpeed; + turn lthigh to z-axis <5.882684> speed <48.724175> / animSpeed; + turn lthigh to y-axis <-7.274906> speed <73.375006> / animSpeed; + move pelvis to y-axis [-2.000000] speed [60.000000] / animSpeed; + turn rbturret to x-axis <-2.000000> speed <150.000002> / animSpeed; + turn rfoot to x-axis <-21.107909> speed <999.534903> / animSpeed; + turn rfoot to z-axis <-6.244135> speed <196.226370> / animSpeed; + turn rfoot to y-axis <-1.188692> speed <301.077734> / animSpeed; + turn rleg to x-axis <61.791144> speed <2249.208973> / animSpeed; + turn rleg to z-axis <-6.494759> speed <749.727441> / animSpeed; + turn rleg to y-axis <7.983417> speed <36.331544> / animSpeed; + turn rthigh to x-axis <6.822557> speed <1195.411807> / animSpeed; + turn rthigh to z-axis <-13.318381> speed <257.937364> / animSpeed; + turn rthigh to y-axis <1.670271> speed <134.669440> / animSpeed; + + turn luparm to x-axis <44.101691> speed <254.114695> / animSpeed; + turn luparm to z-axis <-1.258670> speed <71.015082> / animSpeed; + turn rlarm to x-axis <-8.889314> speed <167.927577> / animSpeed; + turn ruparm to x-axis <-10.109488> speed <254.114958> / animSpeed; + turn ruparm to z-axis <1.076476> speed <75.947770> / animSpeed; + turn torso to x-axis <1.989039> speed <59.671177> / animSpeed; + turn torso to z-axis <0.209141> speed <6.274228> / animSpeed; + turn rlarm to z-axis <0.943926> speed <20.465139> / animSpeed; + if (!bAiming) { + turn rlarm to y-axis <-0.106048> speed <4.682356> / animSpeed; + turn luparm to y-axis <-2.163651> speed <10.762754> / animSpeed; + turn ruparm to y-axis <-0.132403> speed <10.762751> / animSpeed; + turn torso to y-axis <6.003630> speed <30.108930> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:49 + turn head to x-axis <5.115616> speed <153.468472> / animSpeed; + turn head to z-axis <-0.781383> speed <23.441488> / animSpeed; + turn head to y-axis <5.814644> speed <174.439313> / animSpeed; + turn lbturret to x-axis <-4.000000> speed <60.000000> / animSpeed; + turn lbturret to z-axis <-4.000000> speed <60.000000> / animSpeed; + turn lbturret to y-axis <4.000000> speed <60.000000> / animSpeed; + turn lfoot to x-axis <-1.346246> speed <685.118927> / animSpeed; + turn lfoot to z-axis <-3.097530> speed <109.393495> / animSpeed; + turn lfoot to y-axis <1.727369> speed <66.721424> / animSpeed; + turn lleg to x-axis <6.517353> speed <117.267492> / animSpeed; + turn lleg to z-axis <-5.159376> speed <15.258468> / animSpeed; + turn lleg to y-axis <-5.418794> speed <13.828841> / animSpeed; + turn lthigh to x-axis <-3.443306> speed <602.927483> / animSpeed; + turn lthigh to z-axis <9.741890> speed <115.776202> / animSpeed; + turn lthigh to y-axis <-2.866482> speed <132.252737> / animSpeed; + move pelvis to y-axis [0.000000] speed [60.000000] / animSpeed; + turn rbturret to x-axis <-4.000000> speed <60.000000> / animSpeed; + turn rfoot to x-axis <3.464713> speed <737.178672> / animSpeed; + turn rfoot to z-axis <-13.821880> speed <227.332358> / animSpeed; + turn rfoot to y-axis <11.706689> speed <386.861438> / animSpeed; + turn rleg to x-axis <49.896677> speed <356.834012> / animSpeed; + turn rleg to z-axis <2.860165> speed <280.647726> / animSpeed; + turn rleg to y-axis <-0.034784> speed <240.546045> / animSpeed; + turn rthigh to x-axis <-27.229507> speed <1021.561918> / animSpeed; + turn rthigh to z-axis <-0.080827> speed <397.126601> / animSpeed; + turn rthigh to y-axis <8.673256> speed <210.089545> / animSpeed; + + turn luparm to x-axis <35.631191> speed <254.115002> / animSpeed; + turn luparm to z-axis <-3.827077> speed <77.052218> / animSpeed; + turn llarm to x-axis <-39.116282> speed <167.927577> / animSpeed; + turn llarm to z-axis <2.739799> speed <20.465134> / animSpeed; + turn rlarm to x-axis <-19.154144> speed <307.944901> / animSpeed; + turn rlarm to z-axis <0.261755> speed <20.465145> / animSpeed; + turn ruparm to x-axis <-1.638986> speed <254.115066> / animSpeed; + turn ruparm to z-axis <3.504354> speed <72.836316> / animSpeed; + turn torso to x-axis <-0.000000> speed <59.671177> / animSpeed; + turn torso to z-axis <-0.000000> speed <6.274228> / animSpeed; + if (!bAiming) { + turn luparm to y-axis <-1.804893> speed <10.762754> / animSpeed; + turn llarm to y-axis <-0.736776> speed <4.682356> / animSpeed; + turn rlarm to y-axis <0.050031> speed <4.682357> / animSpeed; + turn ruparm to y-axis <0.226356> speed <10.762752> / animSpeed; + turn torso to y-axis <0.000000> speed <180.108912> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:55 + turn head to x-axis <-0.000000> speed <153.468472> / animSpeed; + turn head to z-axis <-0.000000> speed <23.441488> / animSpeed; + turn head to y-axis <0.000000> speed <174.439313> / animSpeed; + turn lbturret to x-axis <-2.000000> speed <60.000000> / animSpeed; + turn lbturret to z-axis <-2.000000> speed <60.000000> / animSpeed; + turn lbturret to y-axis <2.000000> speed <60.000000> / animSpeed; + turn lfoot to x-axis <-16.258053> speed <447.354219> / animSpeed; + turn lfoot to z-axis <4.468625> speed <226.984652> / animSpeed; + turn lfoot to y-axis <-4.157313> speed <176.540454> / animSpeed; + turn lleg to x-axis <-20.219863> speed <802.116482> / animSpeed; + turn lleg to z-axis <-16.796834> speed <349.123719> / animSpeed; + turn lleg to y-axis <-3.716742> speed <51.061559> / animSpeed; + turn lthigh to x-axis <32.121430> speed <1066.942096> / animSpeed; + turn lthigh to z-axis <15.117084> speed <161.255797> / animSpeed; + turn lthigh to y-axis <0.185975> speed <91.573685> / animSpeed; + move pelvis to y-axis [1.070645] speed [32.119356] / animSpeed; + turn rbturret to x-axis <-2.000000> speed <60.000000> / animSpeed; + turn rfoot to x-axis <15.484350> speed <360.589088> / animSpeed; + turn rfoot to z-axis <-9.027691> speed <143.825675> / animSpeed; + turn rfoot to y-axis <-6.166939> speed <536.208850> / animSpeed; + turn rleg to x-axis <15.204647> speed <1040.760901> / animSpeed; + turn rleg to z-axis <1.894440> speed <28.971754> / animSpeed; + turn rleg to y-axis <2.431542> speed <73.989799> / animSpeed; + turn rthigh to x-axis <-36.154257> speed <267.742510> / animSpeed; + turn rthigh to z-axis <3.032219> speed <93.391396> / animSpeed; + turn rthigh to y-axis <12.533713> speed <115.813712> / animSpeed; + + turn llarm to x-axis <-26.801591> speed <369.440732> / animSpeed; + turn llarm to z-axis <1.239022> speed <45.023316> / animSpeed; + turn luparm to x-axis <16.996101> speed <559.052708> / animSpeed; + turn luparm to z-axis <-10.117573> speed <188.714874> / animSpeed; + turn rlarm to x-axis <-30.950251> speed <353.883217> / animSpeed; + turn rlarm to z-axis <-1.239022> speed <45.023314> / animSpeed; + turn ruparm to x-axis <16.996113> speed <559.052977> / animSpeed; + turn ruparm to z-axis <8.247604> speed <142.297502> / animSpeed; + turn torso to x-axis <-1.997258> speed <59.917736> / animSpeed; + turn torso to z-axis <0.104714> speed <3.141430> / animSpeed; + if (!bAiming) { + turn llarm to y-axis <-0.393403> speed <10.301185> / animSpeed; + turn luparm to y-axis <-1.015624> speed <23.678055> / animSpeed; + turn rlarm to y-axis <0.393403> speed <10.301183> / animSpeed; + turn ruparm to y-axis <1.015624> speed <23.678055> / animSpeed; + turn torso to y-axis <-3.001825> speed <90.054764> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + } +} +// Call this from MotionControl()! +StopWalking() { + move pelvis to y-axis [0] speed [10.000000]; + turn head to x-axis <0> speed <25.578079>; + turn head to y-axis <0> speed <39.948218>; + turn head to z-axis <0> speed <3.906915>; + turn lbturret to x-axis <0> speed <25.000000>; + turn lbturret to y-axis <0> speed <25.000000>; + turn lbturret to z-axis <0> speed <25.000000>; + turn lfoot to x-axis <0> speed <189.177414>; + turn lfoot to y-axis <0> speed <65.693855>; + turn lfoot to z-axis <0> speed <37.830775>; + turn llarm to x-axis <0> speed <134.007953>; + turn llarm to y-axis <0> speed <1.967017>; + turn llarm to z-axis <0> speed <7.503886>; + turn lleg to x-axis <0> speed <378.674738>; + turn lleg to y-axis <0> speed <51.508923>; + turn lleg to z-axis <0> speed <150.964760>; + turn lthigh to x-axis <0> speed <196.128370>; + turn lthigh to y-axis <0> speed <31.930656>; + turn lthigh to z-axis <0> speed <75.585418>; + turn luparm to x-axis <0> speed <93.175496>; + turn luparm to y-axis <0> speed <5.078121>; + turn luparm to z-axis <0> speed <50.587864>; + turn rbturret to x-axis <0> speed <25.000000>; + turn rbturret to y-axis <0> speed <25.000000>; + turn rbturret to z-axis <0> speed <25.000000>; + turn rfoot to x-axis <0> speed <166.589151>; + turn rfoot to y-axis <0> speed <128.560295>; + turn rfoot to z-axis <0> speed <88.849715>; + turn rlarm to x-axis <0> speed <154.751255>; + turn rlarm to y-axis <0> speed <1.967017>; + turn rlarm to z-axis <0> speed <7.503886>; + turn rleg to x-axis <0> speed <374.868162>; + turn rleg to y-axis <0> speed <49.592048>; + turn rleg to z-axis <0> speed <124.954573>; + turn rthigh to x-axis <0> speed <199.235301>; + turn rthigh to y-axis <0> speed <62.668565>; + turn rthigh to z-axis <0> speed <66.187767>; + turn ruparm to x-axis <0> speed <93.175496>; + turn ruparm to y-axis <0> speed <5.078121>; + turn ruparm to z-axis <0> speed <41.238018>; + turn torso to x-axis <0> speed <9.986289>; + turn torso to y-axis <0> speed <30.018152>; + turn torso to z-axis <0> speed <1.045705>; +} +UnitSpeed(){ + maxSpeed = get MAX_SPEED; // this returns cob units per frame i think + animFramesPerKeyframe = 6; //we need to calc the frames per keyframe value, from the known animtime + maxSpeed = maxSpeed + (maxSpeed /(2*animFramesPerKeyframe)); // add fudge + while(TRUE){ + animSpeed = (get CURRENT_SPEED); + if (animSpeed<1) animSpeed=1; + animSpeed = (maxSpeed * 9) / animSpeed; + //get PRINT(maxSpeed, animFramesPerKeyframe, animSpeed); + if (animSpeed<4) animSpeed=4; + if (animspeed>16) animSpeed = 16; + sleep 197; + } +} + +Die(){ + signal SIG_WALK; + signal SIG_AIM; + call-script StopWalking(); + turn aimy1 to y-axis <0> speed <120>; + turn aimx1 to x-axis <0> speed <120>; + if (TRUE) { //Frame:10 + turn lfoot to x-axis <-7.951412> speed <26.504706> ; //delta=7.95 + turn lleg to x-axis <16.387120> speed <54.623732> ; //delta=-16.39 + turn lleg to z-axis <2.910462> speed <9.701539> ; //delta=-2.91 + turn lleg to y-axis <-0.890204> speed <2.967347> ; //delta=-0.89 + turn lthigh to x-axis <21.986942> speed <73.289808> ; //delta=-21.99 + turn lthigh to z-axis <-3.068785> speed <10.229283> ; //delta=3.07 + turn lthigh to y-axis <5.482697> speed <18.275658> ; //delta=5.48 + turn luparm to x-axis <7.189627> speed <23.965423> ; //delta=-7.19 + turn luparm to z-axis <3.804238> speed <12.680794> ; //delta=-3.80 + turn luparm to y-axis <16.101790> speed <53.672634> ; //delta=16.10 + move pelvis to z-axis [12.866584] speed [42.888613] ; //delta=12.87 + move pelvis to y-axis [-2.600693] speed [8.668975] ; //delta=-2.60 + turn rfoot to x-axis <-7.431432> speed <24.771461> ; //delta=7.43 + turn rfoot to y-axis <0.948566> speed <3.161888> ; //delta=0.95 + turn rlarm to y-axis <-4.889189> speed <16.297297> ; //delta=-4.89 + turn rleg to x-axis <16.642186> speed <55.473967> ; //delta=-16.64 + turn rleg to z-axis <-2.685092> speed <8.950316> ; //delta=2.69 + turn rleg to y-axis <0.863713> speed <2.879042> ; //delta=0.86 + turn rthigh to x-axis <21.786275> speed <72.620909> ; //delta=-21.79 + turn rthigh to z-axis <3.156952> speed <10.523178> ; //delta=-3.16 + turn rthigh to y-axis <-5.485487> speed <18.284957> ; //delta=-5.49 + turn ruparm to x-axis <5.767079> speed <19.223597> ; //delta=-5.77 + turn ruparm to z-axis <4.057815> speed <13.526051> ; //delta=-4.06 + turn ruparm to y-axis <-12.705579> speed <42.351928> ; //delta=-12.71 + sleep 296; + } + if (TRUE) { //Frame:15 + turn lfoot to x-axis <-15.315950> speed <44.187228> ; //delta=7.36 + turn lleg to x-axis <24.468591> speed <48.488828> ; //delta=-8.08 + turn lleg to z-axis <6.280073> speed <20.217670> ; //delta=-3.37 + turn lleg to y-axis <-2.043062> speed <6.917149> ; //delta=-1.15 + turn lthigh to x-axis <24.869538> speed <17.295576> ; //delta=-2.88 + turn lthigh to z-axis <-5.768810> speed <16.200149> ; //delta=2.70 + turn lthigh to y-axis <6.978519> speed <8.974927> ; //delta=1.50 + turn luparm to x-axis <11.183863> speed <23.965414> ; //delta=-3.99 + turn luparm to z-axis <5.917704> speed <12.680795> ; //delta=-2.11 + turn luparm to y-axis <25.047229> speed <53.672634> ; //delta=8.95 + move pelvis to z-axis [18.306166] speed [32.637491] ; //delta=5.44 + move pelvis to y-axis [-6.955265] speed [26.127432] ; //delta=-4.35 + turn pelvis to x-axis <10.018159> speed <60.108957> ; //delta=-10.02 + turn rfoot to x-axis <-14.345431> speed <41.483994> ; //delta=6.91 + turn rfoot to z-axis <0.235474> speed <1.133379> ; //delta=-0.19 + turn rfoot to y-axis <2.046286> speed <6.586320> ; //delta=1.10 + turn rlarm to y-axis <-7.605405> speed <16.297293> ; //delta=-2.72 + turn rleg to x-axis <24.662514> speed <48.121965> ; //delta=-8.02 + turn rleg to z-axis <-5.765157> speed <18.480390> ; //delta=3.08 + turn rleg to y-axis <1.976707> speed <6.677969> ; //delta=1.11 + turn rthigh to x-axis <24.629416> speed <17.058848> ; //delta=-2.84 + turn rthigh to z-axis <6.013948> speed <17.141978> ; //delta=-2.86 + turn rthigh to y-axis <-7.018057> speed <9.195416> ; //delta=-1.53 + turn ruparm to x-axis <8.971011> speed <19.223592> ; //delta=-3.20 + turn ruparm to z-axis <6.312157> speed <13.526049> ; //delta=-2.25 + turn ruparm to y-axis <-19.764232> speed <42.351918> ; //delta=-7.06 + sleep 164; + } + if (TRUE) { //Frame:20 + turn lfoot to x-axis <-22.089711> speed <40.642569> ; //delta=6.77 + turn lleg to x-axis <28.717790> speed <25.495194> ; //delta=-4.25 + turn lleg to z-axis <10.460810> speed <25.084417> ; //delta=-4.18 + turn lleg to y-axis <-2.856911> speed <4.883093> ; //delta=-0.81 + turn lthigh to x-axis <17.317649> speed <45.311335> ; //delta=7.55 + turn lthigh to z-axis <-6.483776> speed <4.289795> ; //delta=0.71 + turn lthigh to y-axis <5.110625> speed <11.207365> ; //delta=-1.87 + turn luparm to x-axis <15.178099> speed <23.965419> ; //delta=-3.99 + turn luparm to z-axis <8.031170> speed <12.680798> ; //delta=-2.11 + turn luparm to y-axis <33.992666> speed <53.672624> ; //delta=8.95 + move pelvis to z-axis [21.763689] speed [20.745140] ; //delta=3.46 + move pelvis to y-axis [-11.497799] speed [27.255206] ; //delta=-4.54 + turn pelvis to x-axis <30.434005> speed <122.495071> ; //delta=-20.42 + turn rfoot to x-axis <-20.668117> speed <37.936114> ; //delta=6.32 + turn rfoot to z-axis <0.683975> speed <2.691005> ; //delta=-0.45 + turn rfoot to y-axis <3.511500> speed <8.791286> ; //delta=1.47 + turn rlarm to y-axis <-10.321621> speed <16.297296> ; //delta=-2.72 + turn rleg to x-axis <28.707347> speed <24.268997> ; //delta=-4.04 + turn rleg to z-axis <-9.647164> speed <23.292040> ; //delta=3.88 + turn rleg to y-axis <2.690476> speed <4.282613> ; //delta=0.71 + turn rthigh to x-axis <17.095822> speed <45.201567> ; //delta=7.53 + turn rthigh to z-axis <7.019100> speed <6.030912> ; //delta=-1.01 + turn rthigh to y-axis <-5.184667> speed <11.000338> ; //delta=1.83 + turn ruparm to x-axis <12.174945> speed <19.223605> ; //delta=-3.20 + turn ruparm to z-axis <8.566498> speed <13.526049> ; //delta=-2.25 + turn ruparm to y-axis <-26.822885> speed <42.351923> ; //delta=-7.06 + sleep 164; + } + if (TRUE) { //Frame:25 + turn lfoot to x-axis <-13.091148> speed <53.991380> ; //delta=-9.00 + turn lleg to x-axis <18.620366> speed <60.584543> ; //delta=10.10 + turn lleg to z-axis <5.543192> speed <29.505703> ; //delta=4.92 + turn lleg to y-axis <-1.105353> speed <10.509350> ; //delta=1.75 + turn lthigh to x-axis <15.827384> speed <8.941592> ; //delta=1.49 + turn lthigh to z-axis <-3.633101> speed <17.104045> ; //delta=-2.85 + turn lthigh to y-axis <4.165242> speed <5.672296> ; //delta=-0.95 + turn luparm to x-axis <19.172338> speed <23.965430> ; //delta=-3.99 + turn luparm to z-axis <10.144636> speed <12.680793> ; //delta=-2.11 + turn luparm to y-axis <42.938107> speed <53.672644> ; //delta=8.95 + move pelvis to z-axis [26.502817] speed [28.434769] ; //delta=4.74 + move pelvis to y-axis [-14.509933] speed [18.072802] ; //delta=-3.01 + turn pelvis to x-axis <49.548569> speed <114.687387> ; //delta=-19.11 + turn rfoot to x-axis <-12.250557> speed <50.505356> ; //delta=-8.42 + turn rfoot to z-axis <0.201426> speed <2.895295> ; //delta=0.48 + turn rfoot to y-axis <1.857616> speed <9.923305> ; //delta=-1.65 + turn rlarm to y-axis <-13.037837> speed <16.297301> ; //delta=-2.72 + turn rleg to x-axis <18.765332> speed <59.652089> ; //delta=9.94 + turn rleg to z-axis <-5.149120> speed <26.988267> ; //delta=-4.50 + turn rleg to y-axis <1.054574> speed <9.815415> ; //delta=-1.64 + turn rthigh to x-axis <15.627579> speed <8.809458> ; //delta=1.47 + turn rthigh to z-axis <3.883779> speed <18.811929> ; //delta=3.14 + turn rthigh to y-axis <-4.196180> speed <5.930923> ; //delta=0.99 + turn ruparm to x-axis <15.378878> speed <19.223595> ; //delta=-3.20 + turn ruparm to z-axis <10.820841> speed <13.526054> ; //delta=-2.25 + turn ruparm to y-axis <-33.881539> speed <42.351923> ; //delta=-7.06 + sleep 164; + } + if (TRUE) { //Frame:30 + turn lfoot to x-axis <6.183374> speed <115.647131> ; //delta=-19.27 + turn lleg to x-axis <3.002818> speed <93.705290> ; //delta=15.62 + turn lleg to z-axis <-2.510946> speed <48.324833> ; //delta=8.05 + turn lleg to y-axis <-0.123604> speed <5.890496> ; //delta=0.98 + turn lthigh to x-axis <16.343596> speed <3.097272> ; //delta=-0.52 + turn lthigh to z-axis <1.088185> speed <28.327718> ; //delta=-4.72 + turn lthigh to y-axis <2.934389> speed <7.385117> ; //delta=-1.23 + turn luparm to x-axis <23.166574> speed <23.965419> ; //delta=-3.99 + turn luparm to z-axis <12.258101> speed <12.680793> ; //delta=-2.11 + turn luparm to y-axis <51.883544> speed <53.672624> ; //delta=8.95 + move pelvis to z-axis [31.482067] speed [29.875500] ; //delta=4.98 + move pelvis to y-axis [-17.657333] speed [18.884405] ; //delta=-3.15 + turn pelvis to x-axis <66.698771> speed <102.901212> ; //delta=-17.15 + turn rfoot to x-axis <5.816803> speed <108.404162> ; //delta=-18.07 + turn rfoot to z-axis <0.044184> speed <0.943448> ; //delta=0.16 + turn rfoot to y-axis <-0.846276> speed <16.223353> ; //delta=-2.70 + turn rlarm to y-axis <-15.754053> speed <16.297296> ; //delta=-2.72 + turn rleg to x-axis <3.148200> speed <93.702791> ; //delta=15.62 + turn rleg to z-axis <2.354425> speed <45.021265> ; //delta=-7.50 + turn rleg to y-axis <0.117119> speed <5.624730> ; //delta=-0.94 + turn rthigh to x-axis <16.315596> speed <4.128101> ; //delta=-0.69 + turn rthigh to z-axis <-1.213100> speed <30.581272> ; //delta=5.10 + turn rthigh to y-axis <-2.889764> speed <7.838492> ; //delta=1.31 + turn ruparm to x-axis <18.582810> speed <19.223595> ; //delta=-3.20 + turn ruparm to z-axis <13.075182> speed <13.526049> ; //delta=-2.25 + turn ruparm to y-axis <-40.940195> speed <42.351933> ; //delta=-7.06 + sleep 164; + } + if (TRUE) { //Frame:36 + turn lfoot to x-axis <22.858674> speed <83.376501> ; //delta=-16.68 + turn lleg to x-axis <-9.415143> speed <62.089806> ; //delta=12.42 + turn lleg to z-axis <-7.258226> speed <23.736398> ; //delta=4.75 + turn lleg to y-axis <-0.677100> speed <2.767480> ; //delta=-0.55 + turn lthigh to x-axis <13.516371> speed <14.136122> ; //delta=2.83 + turn lthigh to z-axis <7.410415> speed <31.611152> ; //delta=-6.32 + turn lthigh to y-axis <0.177773> speed <13.783080> ; //delta=-2.76 + move pelvis to x-axis [-1.564401] speed [7.822003] ; //delta=-1.56 + move pelvis to z-axis [35.089668] speed [18.038006] ; //delta=3.61 + move pelvis to y-axis [-22.561186] speed [24.519262] ; //delta=-4.90 + turn pelvis to x-axis <85.967336> speed <96.342824> ; //delta=-19.27 + turn rfoot to x-axis <25.648935> speed <99.160659> ; //delta=-19.83 + turn rfoot to z-axis <0.716651> speed <3.362332> ; //delta=-0.67 + turn rfoot to y-axis <-3.649921> speed <14.018222> ; //delta=-2.80 + turn rlarm to y-axis <-19.013512> speed <16.297292> ; //delta=-3.26 + turn rleg to x-axis <-11.830570> speed <74.893848> ; //delta=14.98 + turn rleg to z-axis <10.000568> speed <38.230718> ; //delta=-7.65 + turn rleg to y-axis <1.343435> speed <6.131581> ; //delta=1.23 + turn rthigh to x-axis <14.475478> speed <9.200589> ; //delta=1.84 + turn rthigh to z-axis <-3.123860> speed <9.553801> ; //delta=1.91 + turn rthigh to y-axis <-2.028980> speed <4.303921> ; //delta=0.86 + sleep 197; + } + if (TRUE) { //Frame:38 + turn lfoot to x-axis <24.088595> speed <18.448811> ; //delta=-1.23 + turn lleg to x-axis <-11.162255> speed <26.206680> ; //delta=1.75 + turn lleg to z-axis <-7.490688> speed <3.486931> ; //delta=0.23 + turn lthigh to x-axis <10.917007> speed <38.990464> ; //delta=2.60 + turn lthigh to z-axis <8.088870> speed <10.176820> ; //delta=-0.68 + turn lthigh to y-axis <-0.460547> speed <9.574794> ; //delta=-0.64 + move pelvis to x-axis [-1.854104] speed [4.345551] ; //delta=-0.29 + move pelvis to z-axis [35.367222] speed [4.163303] ; //delta=0.28 + move pelvis to y-axis [-23.109104] speed [8.218775] ; //delta=-0.55 + turn pelvis to x-axis <90.401966> speed <66.519451> ; //delta=-4.43 + explode rbturret type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide rbturret; + explode rbbarrel1 type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide rbbarrel1; + explode rbbarrel2 type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide rbbarrel2; + explode rbflare type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide rbflare; + turn rfoot to x-axis <27.810773> speed <32.427578> ; //delta=-2.16 + turn rfoot to z-axis <0.823446> speed <1.601927> ; //delta=-0.11 + turn rfoot to y-axis <-3.943304> speed <4.400753> ; //delta=-0.29 + turn rlarm to y-axis <-20.099999> speed <16.297301> ; //delta=-1.09 + turn rleg to x-axis <-14.010692> speed <32.701832> ; //delta=2.18 + turn rleg to z-axis <10.768171> speed <11.514047> ; //delta=-0.77 + turn rleg to y-axis <1.621355> speed <4.168806> ; //delta=0.28 + turn rthigh to x-axis <12.105020> speed <35.556872> ; //delta=2.37 + turn rthigh to y-axis <-1.615845> speed <6.197031> ; //delta=0.41 + sleep 65; + } + if (TRUE) { //Frame:40 + turn lfoot to x-axis <23.354937> speed <11.004869> ; //delta=0.73 + turn lleg to x-axis <-9.513333> speed <24.733831> ; //delta=-1.65 + turn lleg to z-axis <-7.356158> speed <2.017950> ; //delta=-0.13 + turn lthigh to x-axis <14.070623> speed <47.304242> ; //delta=-3.15 + turn lthigh to z-axis <7.684261> speed <6.069140> ; //delta=0.40 + turn lthigh to y-axis <0.165055> speed <9.384029> ; //delta=0.63 + move pelvis to x-axis [-1.670315] speed [2.756832] ; //delta=0.18 + move pelvis to z-axis [35.182568] speed [2.769814] ; //delta=-0.18 + move pelvis to y-axis [-22.886957] speed [3.332205] ; //delta=0.22 + turn pelvis to x-axis <86.086454> speed <64.732674> ; //delta=4.32 + turn rfoot to x-axis <26.415816> speed <20.924353> ; //delta=1.39 + turn rfoot to y-axis <-3.758445> speed <2.772886> ; //delta=0.18 + turn rleg to x-axis <-12.105738> speed <28.574301> ; //delta=-1.90 + turn rleg to z-axis <10.280707> speed <7.311969> ; //delta=0.49 + turn rleg to y-axis <1.432247> speed <2.836620> ; //delta=-0.19 + turn rthigh to x-axis <15.079104> speed <44.611270> ; //delta=-2.97 + turn rthigh to y-axis <-2.186278> speed <8.556507> ; //delta=-0.57 + sleep 65; + } + if (TRUE) { //Frame:45 + move lbturret to x-axis [-72.841965] speed [437.051788] ; //delta=-72.84 + explode lbturret type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide lbturret; + explode lbbarrel1 type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide lbbarrel1; + explode lbbarrel2 type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide lbbarrel2; + explode lbflare type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide lbflare; + turn lfoot to x-axis <19.488089> speed <23.201091> ; //delta=3.87 + turn lleg to x-axis <-5.632170> speed <23.286982> ; //delta=-3.88 + turn lleg to z-axis <-6.511956> speed <5.065215> ; //delta=-0.84 + turn lleg to y-axis <-0.465322> speed <1.399753> ; //delta=0.23 + turn lthigh to x-axis <17.203098> speed <18.794850> ; //delta=-3.13 + turn lthigh to z-axis <5.567228> speed <12.702195> ; //delta=2.12 + turn lthigh to y-axis <1.438559> speed <7.641021> ; //delta=1.27 + move pelvis to x-axis [-0.927052] speed [4.459579] ; //delta=0.74 + move pelvis to z-axis [34.435806] speed [4.480568] ; //delta=-0.75 + move pelvis to y-axis [-21.988571] speed [5.390316] ; //delta=0.90 + turn pelvis to x-axis <79.400703> speed <40.114507> ; //delta=6.69 + turn rfoot to x-axis <20.572164> speed <35.061912> ; //delta=5.84 + turn rfoot to z-axis <0.488876> speed <1.599737> ; //delta=0.27 + turn rfoot to y-axis <-2.952444> speed <4.836008> ; //delta=0.81 + turn rleg to x-axis <-6.985100> speed <30.723834> ; //delta=-5.12 + turn rleg to z-axis <8.118046> speed <12.975964> ; //delta=2.16 + turn rleg to y-axis <0.718232> speed <4.284093> ; //delta=-0.71 + turn rthigh to x-axis <17.709552> speed <15.782685> ; //delta=-2.63 + turn rthigh to y-axis <-2.551461> speed <2.191096> ; //delta=-0.37 + sleep 164; + } + if (TRUE) { //Frame:50 + turn lfoot to x-axis <21.546561> speed <12.350833> ; //delta=-2.06 + turn lleg to x-axis <-8.365745> speed <16.401449> ; //delta=2.73 + turn lleg to z-axis <-6.923944> speed <2.471931> ; //delta=0.41 + turn lleg to y-axis <-0.596502> speed <0.787084> ; //delta=-0.13 + turn lthigh to x-axis <14.016852> speed <19.117479> ; //delta=3.19 + turn lthigh to z-axis <6.865205> speed <7.787863> ; //delta=-1.30 + turn lthigh to y-axis <0.445852> speed <5.956240> ; //delta=-0.99 + move pelvis to x-axis [-1.390578] speed [2.781156] ; //delta=-0.46 + move pelvis to z-axis [34.901516] speed [2.794258] ; //delta=0.47 + move pelvis to y-axis [-22.548840] speed [3.361610] ; //delta=-0.56 + turn pelvis to x-axis <84.980537> speed <33.479005> ; //delta=-5.58 + turn rfoot to x-axis <23.839915> speed <19.606502> ; //delta=-3.27 + turn rfoot to z-axis <0.631858> speed <0.857892> ; //delta=-0.14 + turn rfoot to y-axis <-3.417066> speed <2.787733> ; //delta=-0.46 + turn rleg to x-axis <-10.501550> speed <21.098702> ; //delta=3.52 + turn rleg to z-axis <9.383267> speed <7.591325> ; //delta=-1.27 + turn rleg to y-axis <1.137137> speed <2.513432> ; //delta=0.42 + turn rthigh to x-axis <14.857927> speed <17.109747> ; //delta=2.85 + turn rthigh to y-axis <-2.089221> speed <2.773443> ; //delta=0.46 + sleep 164; + } + if (TRUE) { //Frame:55 + explode head type FALL|SMOKE|FIRE|NOHEATCLOUD; + hide head; + turn lfoot to x-axis <24.066836> speed <15.121650> ; //delta=-2.52 + turn lleg to x-axis <-11.201945> speed <17.017201> ; //delta=2.84 + turn lleg to z-axis <-7.483747> speed <3.358816> ; //delta=0.56 + turn lleg to y-axis <-0.744686> speed <0.889104> ; //delta=-0.15 + turn lthigh to x-axis <10.776920> speed <19.439591> ; //delta=3.24 + turn lthigh to z-axis <8.081734> speed <7.299173> ; //delta=-1.22 + turn lthigh to y-axis <-0.479487> speed <5.552032> ; //delta=-0.93 + move pelvis to x-axis [-1.854104] speed [2.781156] ; //delta=-0.46 + move pelvis to z-axis [35.367222] speed [2.794235] ; //delta=0.47 + move pelvis to y-axis [-23.109104] speed [3.361588] ; //delta=-0.56 + turn pelvis to x-axis <90.560365> speed <33.478965> ; //delta=-5.58 + turn rfoot to x-axis <27.794949> speed <23.730208> ; //delta=-3.96 + turn rfoot to z-axis <0.822469> speed <1.143665> ; //delta=-0.19 + turn rfoot to y-axis <-3.941405> speed <3.146035> ; //delta=-0.52 + turn rleg to x-axis <-14.047901> speed <21.278107> ; //delta=3.55 + turn rleg to z-axis <10.763769> speed <8.283010> ; //delta=-1.38 + turn rleg to y-axis <1.620443> speed <2.899835> ; //delta=0.48 + turn rthigh to x-axis <11.967635> speed <17.341751> ; //delta=2.89 + turn rthigh to y-axis <-1.588510> speed <3.004261> ; //delta=0.50 + sleep 164; + } + +} + + +StartMoving() +{ + signal SIG_WALK; + set-signal-mask SIG_WALK; + bMoving = TRUE; + start-script Walk(); + start-script UnitSpeed(); +} + + +StopMoving() +{ + signal SIG_WALK; + start-script StopWalking(); + bMoving = FALSE; +} + +SmokeUnit(healthpercent, sleeptime, smoketype) +{ + var Func_Var_4; + while( get BUILD_PERCENT_LEFT ) + { + sleep 400; + } + while( TRUE ) + { + healthpercent = get HEALTH; + if( healthpercent < 66 ) + { + smoketype = 256 | 2; + if( Rand( 1, 66 ) < healthpercent ) + { + smoketype = 256 | 1; + } + + emit-sfx smoketype from torso; + + } + sleeptime = healthpercent * 50; + if( sleeptime < 200 ) + { + sleeptime = 200; + } + sleep sleeptime; + } + return (0); +} + + +#define BASEPIECE pelvis +#define HITSPEED <55.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 10 +#define MAXTILT 100 +HitByWeapon(anglex, anglez, damage) // angle[x|z] is always [-500;500], damage is multiplied by 100 +{ + var amount;//, speedz, speedx; + amount = damage / (100 * UNITSIZE); + if (amount < 3 ) return (0); + if (amount > MAXTILT) amount = MAXTILT; + //get PRINT(anglex, anglez, amount, damage); + //speedz = HITSPEED * get ABS(anglez) / 500; //nevermind this, the random error this produces actually looks better than the accurate version + turn BASEPIECE to z-axis (anglez * amount) / 100 speed HITSPEED; + turn BASEPIECE to x-axis <0> - (anglex * amount) /100 speed HITSPEED; + wait-for-turn BASEPIECE around z-axis; + wait-for-turn BASEPIECE around x-axis; + turn BASEPIECE to z-axis <0.000000> speed HITSPEED / 4; + turn BASEPIECE to x-axis <0.000000> speed HITSPEED / 4; +} +HitByWeaponId(anglex, anglez, weaponid, dmg) //weaponID is always 0,lasers and flamers give angles of 0 +{ + start-script HitByWeapon(dmg, anglez,anglex); //I dont know why param order must be switched, and this also runs a frame later :( + return (100); //return damage percent +} + + +Create() +{ + hide rfflare1; + hide rfflare2; + hide lfflare2; + hide lfflare1; + hide aimx1; + hide rbflare; + hide lbflare; + hide aimy1; + gun_1 = 1; + gun_2 = 0; + targetswap = 0; + isfiring = 0; + issmoking = 0; + shotcount = 0; + lightcount1 = 0; + lightcount2 = 0; + bMoving = FALSE; + bAiming = FALSE; + animSpeed = 6; + + turn rbflare to x-axis <-130> now; + turn lbflare to x-axis <-130> now; + + turn rbflare to y-axis <35> now; + turn lbflare to y-axis <-35> now; + while( get BUILD_PERCENT_LEFT ) + { + sleep 1000; + } + start-script SmokeUnit(); + return (0); +} + +SweetSpot(piecenum) +{ + piecenum = torso; + return (0); +} + +QueryPrimary(piecenum) +{ + if( gun_1 == 1 ) + { + piecenum = lfflare1; + return (0); + } + if( gun_1 == 2 ) + { + piecenum = rfflare1; + return (0); + } + if( gun_1 == 3 ) + { + piecenum = lfflare2; + return (0); + } + if( gun_1 == 4 ) + { + piecenum = rfflare2; + return (0); + } +} + +QuerySecondary(piecenum) +{ + if( gun_2 == 0 ) + { + piecenum = aaflarel; + return (0); + } + if( gun_2 == 1 ) + { + piecenum = aaflarer; + return (0); + } +} + +AimFromPrimary(piecenum) +{ + piecenum = torso; + return (0); +} + +AimFromSecondary(piecenum) +{ + if( gun_2 == 1 ) + { + piecenum = aaflarel; + return (0); + } + if( gun_2 == 0 ) + { + piecenum = aaflarer; + return (0); + } +} + +RestoreAfterDelay() +{ + sleep 1000; + bAiming = FALSE; + isfiring = 0; + targetswap = 0; + turn aimx1 to x-axis <0.000000> speed <80.000000>; + turn aimy1 to y-axis <0.000000> speed <80.000000>; + turn aaturretl to x-axis <0.000000> speed <80.000000>; + turn aaturretl to y-axis <0.000000> speed <80.000000>; + turn aaturretr to x-axis <0.000000> speed <80.000000>; + turn aaturretr to y-axis <0.000000> speed <80.000000>; +} + +lua_UnitScriptLight(lightIndex, count) +{ + return 0; +} + + +SmokeItUp() +{ + if (issmoking == 0 OR TRUE) + { + issmoking = 1; + emit-sfx 257 from lbbarrel1; + emit-sfx 258 from rbflare; + sleep 45; + emit-sfx 258 from lbflare; + emit-sfx 257 from rbbarrel1; + sleep 45; + issmoking = 0; + } +} + +SweepFire() +{ + start-script SmokeItUp(); + if( gun_1 == 1 ) + { + emit-sfx 2048 from lfflare1; + emit-sfx 2048 from rfflare1; + emit-sfx 1024 + 0 from lfflare2; + emit-sfx 1024 + 0 from rfflare1; + } + if( gun_1 == 2 ) + { + emit-sfx 2048 from rfflare1; + emit-sfx 2048 from lfflare2; + emit-sfx 1024 + 0 from lfflare2; + emit-sfx 1024 + 0 from rfflare1; + } + if( gun_1 == 3 ) + { + gun_1 = 0; + emit-sfx 2048 from lfflare2; + emit-sfx 2048 from rfflare2; + emit-sfx 1024 + 0 from lfflare2; + emit-sfx 1024 + 0 from rfflare1; + } + if( gun_1 == 4 ) + { + gun_1 = 1; + emit-sfx 2048 from rfflare2; + emit-sfx 2048 from lfflare1; + emit-sfx 1024 + 0 from lfflare2; + emit-sfx 1024 + 0 from rfflare1; + } + gun_1 = gun_1 + 2; + return (0); +} + +AimPrimary(heading, pitch) +{ + signal SIG_AIM; + set-signal-mask SIG_AIM; + bAiming = TRUE; + start-script SmokeItUp(); + turn aimy1 to y-axis heading speed <130.000000>; + turn aimx1 to x-axis <0.000000> - pitch speed <120.000000>; + if ( (oldheading - heading) > 5000 AND targetswap <= 0) + { + targetswap = (oldheading - heading)/3034; + } + if ( (oldheading - heading) < -5000 AND targetswap <= 0) + { + targetswap = -1*(oldheading - heading)/3034; + } + oldheading = heading; + if ( targetswap > 0 AND isfiring == 1 AND FALSE) + { + start-script SweepFire(); + sleep 33; + start-script SweepFire(); + sleep 33; + start-script SweepFire(); + sleep 33; + //start-script SweepFire(); + //sleep 33; + //start-script SweepFire(); + //sleep 33; + //start-script SweepFire(); + //sleep 33; + targetswap = targetswap - 1; + start-script RestoreAfterDelay(); + return (0); + } + + if ((get ABS(oldheading - heading)) > 2000){ + wait-for-turn aimy1 around y-axis; + wait-for-turn aimx1 around x-axis; + } + + oldheading = heading; + //wait-for-turn aimy1 around y-axis; + //wait-for-turn aimx1 around x-axis; + start-script RestoreAfterDelay(); + isfiring = 1; + return (1); +} + +AimSecondary(heading, pitch) +{ + signal SIG_AIM_2; + set-signal-mask SIG_AIM_2; + turn aaturretl to y-axis heading speed <192.500000>; + turn aaturretr to y-axis heading speed <192.500000>; + turn boxl to x-axis -1*pitch speed <90>; + turn boxr to x-axis -1*pitch speed <90>; + wait-for-turn aaturretl around y-axis; + wait-for-turn boxl around x-axis; + start-script RestoreAfterDelay(); + return (1); +} + + +Shot1() +{ + signal SIG_FIRE1; + + set-signal-mask SIG_FIRE1; + call-script lua_FlameShot(1); + emit-sfx 1024 + 0 from lfflare2; + emit-sfx 1024 + 0 from rfflare1; + //start-script SmokeItUp(); + shotcount = shotcount + 1; + + //call-script lua_UnitScriptLight(5, shotcount); + //call-script lua_UnitScriptLight(6, shotcount); + if( gun_1 == 1 ) + { + turn aimy1 to x-axis <-1> now; + //call-script lua_UnitScriptLight(1, shotcount); + gun_1 = 2; + return(1); + } + if( gun_1 == 2 ) + { + //call-script lua_UnitScriptLight(2, shotcount); + gun_1 = 3; + return(1); + } + if( gun_1 == 3 ) + + { + call-script lua_UnitScriptLight(1, shotcount); + //get PRINT(lightcount1); + if (lightcount1 == 95) { + lightcount1 = 0; + } else { + lightcount1 = lightcount1 + 1; + } + gun_1 = 4; + return(1); + } + if( gun_1 == 4 ) + { + if (lightcount2 == 95) { + call-script lua_UnitScriptLight(2, shotcount); + lightcount2 = 0; + } else { + lightcount2 = lightcount2 + 1; + } + call-script lua_UnitScriptLight(2, shotcount); + + gun_1 = 1; + return(1); + } +} + +FirePrimary() +{ + + return(1); +} + +FireSecondary() +{ + + if( gun_2 == 0 ) + { + turn aimy1 to x-axis <-1> now; // dont always do this + turn aimy1 to x-axis <0> speed <5>; + move lfbarrel1 to z-axis [-1] speed [750.000000]; + sleep 150; + move lfbarrel1 to z-axis [0.000000] speed [8.750000]; + + } + if( gun_2 == 1 ) + { + move rfbarrel1 to z-axis [-1] speed [750.000000]; + sleep 150; + move rfbarrel1 to z-axis [0.000000] speed [8.750000]; + } + gun_2 = !gun_2; + return (0); +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + call-script Die(); + corpsetype = 1 ; + explode pelvis type BITMAPONLY | NOHEATCLOUD; + explode rthigh type BITMAPONLY | NOHEATCLOUD; + explode rleg type BITMAPONLY | NOHEATCLOUD; + //explode rfoot type BITMAPONLY | NOHEATCLOUD; + //explode lthigh type BITMAPONLY | NOHEATCLOUD; + //explode lleg type BITMAPONLY | NOHEATCLOUD; + //explode lfoot type BITMAPONLY | NOHEATCLOUD; + explode torso type BITMAPONLY | NOHEATCLOUD; + //explode lbturret type BITMAPONLY | NOHEATCLOUD; + //explode lbbarrel1 type BITMAPONLY | NOHEATCLOUD; + explode lbbarrel2 type BITMAPONLY | NOHEATCLOUD; + //explode lbflare type BITMAPONLY | NOHEATCLOUD; + //explode rbturret type BITMAPONLY | NOHEATCLOUD; + //explode rbbarrel2 type BITMAPONLY | NOHEATCLOUD; + //explode rbflare type BITMAPONLY | NOHEATCLOUD; + //explode rbbarrel1 type BITMAPONLY | NOHEATCLOUD; + explode luparm type BITMAPONLY | NOHEATCLOUD; + //explode llarm type BITMAPONLY | NOHEATCLOUD; + //explode lfflare2 type BITMAPONLY | NOHEATCLOUD; + //explode lfbarrel1 type BITMAPONLY | NOHEATCLOUD; + //explode lfflare1 type BITMAPONLY | NOHEATCLOUD; + //explode ruparm type BITMAPONLY | NOHEATCLOUD; + explode rlarm type BITMAPONLY | NOHEATCLOUD; + explode rfbarrel1 type BITMAPONLY | NOHEATCLOUD; + //explode rfflare1 type BITMAPONLY | NOHEATCLOUD; + //explode rfbarrel2 type BITMAPONLY | NOHEATCLOUD; + //explode rfflare2 type BITMAPONLY | NOHEATCLOUD; + explode head type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode pelvis type BITMAPONLY | NOHEATCLOUD; + explode rthigh type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rleg type FALL | NOHEATCLOUD; + //explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lthigh type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lleg type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode torso type FALL | NOHEATCLOUD; + //explode lbturret type FALL | NOHEATCLOUD; + //explode lbbarrel1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lbbarrel2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lbflare type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rbturret type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rbbarrel2 type FALL | NOHEATCLOUD; + //explode rbflare type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rbbarrel1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode luparm type FALL | NOHEATCLOUD; + //explode llarm type FALL | NOHEATCLOUD; + //explode lfbarrel2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lfflare2 type FALL | NOHEATCLOUD; + //explode lfbarrel1 type FALL | NOHEATCLOUD; + //explode lfflare1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode ruparm type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rlarm type FALL | NOHEATCLOUD; + //explode rfbarrel1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfflare1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfbarrel2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfflare2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode head type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 2 ; + explode pelvis type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rthigh type SMOKE | FALL | NOHEATCLOUD; + //explode rleg type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode lthigh type SMOKE | FALL | NOHEATCLOUD; + //explode lleg type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode torso type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode lbturret type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + //explode lbbarrel1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lbbarrel2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lbflare type SMOKE | FALL | NOHEATCLOUD; + //explode rbturret type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rbbarrel2 type SMOKE | FALL | NOHEATCLOUD; + //explode rbflare type SMOKE | FALL | NOHEATCLOUD; + //explode rbbarrel1 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode luparm type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode llarm type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + //explode lfbarrel2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lfflare2 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + //explode lfbarrel1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lfflare1 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode ruparm type SMOKE | FALL | NOHEATCLOUD; + explode rlarm type SMOKE | FALL | NOHEATCLOUD; + explode rfbarrel1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfflare1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfbarrel2 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + //explode rfflare2 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode head type SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 2 ; + explode pelvis type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rthigh type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rleg type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rfoot type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lthigh type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode lleg type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode lfoot type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode torso type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode lbturret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode lbbarrel1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode lbbarrel2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode lbflare type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rbturret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rbbarrel2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rbflare type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rbbarrel1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode luparm type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode llarm type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lfbarrel2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode lfflare2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lfbarrel1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode lfflare1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode ruparm type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rlarm type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rfbarrel1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfflare1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfbarrel2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfflare2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode head type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/cordemon.cob b/scripts/Units/cordemon.cob new file mode 100644 index 00000000000..f34a15b689d Binary files /dev/null and b/scripts/Units/cordemon.cob differ diff --git a/scripts/Units/cordemon_clean.bos b/scripts/Units/cordemon_clean.bos index c0eedb1f4c5..10fcf68ea02 100644 --- a/scripts/Units/cordemon_clean.bos +++ b/scripts/Units/cordemon_clean.bos @@ -15,6 +15,11 @@ static-var animSpeed, maxSpeed, animFramesPerKeyframe; #define SIGNAL_AIM2 512 #define SIGNAL_SHOOT1 16 +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations\corkarg_anim_walk.blend set-signal-mask SIGNAL_MOVE; @@ -842,16 +847,6 @@ StopMoving() #include "../unit_hitbyweaponid_and_smoke.h" -PilotLight() -{ - while( TRUE ) - { - emit-sfx 1024 + 1 from rfflare2; - emit-sfx 1024 + 1 from lfflare1; - sleep 120; - } -} - Create() { hide rfflare1; @@ -873,7 +868,6 @@ Create() isMoving = FALSE; isAiming = FALSE; animSpeed = 6; - start-script PilotLight(); turn rbflare to x-axis <-130> now; turn lbflare to x-axis <-130> now; @@ -963,11 +957,6 @@ lua_UnitScriptLight(lightIndex, count) return 0; } -lua_UnitScriptDistortion(lightIndex, count) -{ - return 0; -} - SmokeItUp() { @@ -1090,13 +1079,12 @@ Shot1() signal SIGNAL_SHOOT1; set-signal-mask SIGNAL_SHOOT1; + call-script lua_FlameShot(1); emit-sfx 1024 + 0 from lfflare2; emit-sfx 1024 + 0 from rfflare1; //start-script SmokeItUp(); shotcount = shotcount + 1; - call-script lua_UnitScriptDistortion(3, shotcount); - call-script lua_UnitScriptDistortion(4, shotcount); - + //call-script lua_UnitScriptLight(5, shotcount); //call-script lua_UnitScriptLight(6, shotcount); if( gun_1 == 1 ) @@ -1114,11 +1102,10 @@ Shot1() } if( gun_1 == 3 ) - { - //get PRINT(lightcount1); - if (lightcount1 == 25) { + { call-script lua_UnitScriptLight(1, shotcount); - call-script lua_UnitScriptDistortion(1, shotcount); + //get PRINT(lightcount1); + if (lightcount1 == 95) { lightcount1 = 0; } else { lightcount1 = lightcount1 + 1; @@ -1128,14 +1115,13 @@ Shot1() } if( gun_1 == 4 ) { - if (lightcount2 == 25) { + if (lightcount2 == 95) { call-script lua_UnitScriptLight(2, shotcount); - call-script lua_UnitScriptDistortion(2, shotcount); lightcount2 = 0; } else { lightcount2 = lightcount2 + 1; } - //call-script lua_UnitScriptLight(2, shotcount); + call-script lua_UnitScriptLight(2, shotcount); gun_1 = 1; return(1); diff --git a/scripts/Units/cordemon_clean.cob b/scripts/Units/cordemon_clean.cob index f3d2af70058..ba105a8f17a 100644 Binary files a/scripts/Units/cordemon_clean.cob and b/scripts/Units/cordemon_clean.cob differ diff --git a/scripts/Units/coreter.bos b/scripts/Units/coreter.bos index bd6fa57d67a..acb8f59a4c7 100644 --- a/scripts/Units/coreter.bos +++ b/scripts/Units/coreter.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, jam1, jam2, turret, jam, nojam; +piece base, jam1, jam2, turret; static-var Static_Var_1; static-var recently_damaged, desired_activation; @@ -43,8 +43,6 @@ SmokeUnit(healthpercent, sleeptime, smoketype) Create() { - hide jam; - show nojam; start-script SmokeUnit(); Static_Var_1 = 0; recently_damaged = 0; @@ -57,8 +55,6 @@ Activate() signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; desired_activation = 1; - show jam; - hide nojam; // if we are in this function, the unit is already on // implied set ACTIVATION to 1; // turn off if unit is in the recently_damaged state @@ -68,9 +64,9 @@ Activate() set ACTIVATION to 0; return(0); } - spin turret around y-axis speed <25> accelerate <0.5>; - spin jam2 around x-axis speed <150> accelerate <1>; - spin jam1 around x-axis speed <-150> accelerate <1>; + spin turret around y-axis speed <25.021978>; + spin jam2 around x-axis speed <90.021978>; + spin jam1 around x-axis speed <-90.021978>; return (0); } @@ -86,8 +82,6 @@ Deactivate() // unit_paralyze_on_off deactivates this unit before it is // stunned, so it is actually turned off, but we need to wait to see if the // unit is "damaged" by stun. - hide jam; - show nojam; sleep 100; if (recently_damaged == 0) { @@ -96,9 +90,9 @@ Deactivate() } signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; - stop-spin turret around y-axis decelerate <1>; - stop-spin jam2 around x-axis decelerate <6>; - stop-spin jam1 around x-axis decelerate <6>; + spin turret around y-axis speed <0.000000>; + spin jam2 around x-axis speed <0>; + spin jam1 around x-axis speed <0>; return (0); } diff --git a/scripts/Units/coreter.cob b/scripts/Units/coreter.cob index 1bc81c976d8..99358599317 100644 Binary files a/scripts/Units/coreter.cob and b/scripts/Units/coreter.cob differ diff --git a/scripts/Units/corfmd_clean.bos b/scripts/Units/corfmd_clean.bos index 5ec30bea288..9674498036f 100644 --- a/scripts/Units/corfmd_clean.bos +++ b/scripts/Units/corfmd_clean.bos @@ -3,10 +3,7 @@ #include "../recoil_common_includes.h" -piece base, dbl, dbr, dtr, dtl, dummy, -greendbr, greendtr, greendtl, greendbl, orangelight; - -static-var restore_delay, missiles_stockpiled; +piece base, dbl, dbr, dtr, dtl, dummy; // Signal definitions #define SIGNAL_AIM1 256 @@ -15,13 +12,6 @@ static-var restore_delay, missiles_stockpiled; Create() { hide dummy; - restore_delay = 3000; - missiles_stockpiled = 0; - hide greendbr; - hide greendtl; - hide greendtr; - hide greendbl; - show orangelight; } #define BASEPIECE base @@ -53,11 +43,6 @@ Deactivate() move dtr to z-axis [0] speed [8]; } -SetMaxReloadTime(reloadMS) -{ - restore_delay = reloadMS * 2; -} - AimWeapon1(heading, pitch) { signal SIGNAL_AIM1; @@ -82,40 +67,6 @@ AimFromWeapon1(pieceIndex) pieceIndex=dummy; } -lights_orange() -{ - hide greendbr; - hide greendtl; - hide greendtr; - hide greendbl; - show orangelight; -} - -lights_green() -{ - show greendbr; - show greendtl; - show greendtr; - show greendbl; - hide orangelight; -} - -SetStockpile(num_stockpiled) -{ - if (num_stockpiled == 0) - { - start-script lights_orange(); - sleep 100; - missiles_stockpiled = 0; - } - if (num_stockpiled >= 1) - { - start-script lights_green(); - sleep 100; - missiles_stockpiled = 1; - } -} - Killed(severity, corpsetype) { if( severity <= 25 ) diff --git a/scripts/Units/corfmd_clean.cob b/scripts/Units/corfmd_clean.cob index 729c654ebec..76d357445f3 100644 Binary files a/scripts/Units/corfmd_clean.cob and b/scripts/Units/corfmd_clean.cob differ diff --git a/scripts/Units/corfship.bos b/scripts/Units/corfship.bos new file mode 100644 index 00000000000..1feb4508a33 --- /dev/null +++ b/scripts/Units/corfship.bos @@ -0,0 +1,299 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece base, ground, wake1, wake2, turret, sleeve, flare, mturret, mbarrel, flare1, flare2, flare3; + +static-var restore_delay, Static_Var_7, Static_Var_8, aimDir, oldHead, gun_1; + +// Signal definitions +#define SIG_AIM 2 +#define SIG_AIM_2 4 +#define SIG_MOVE 4096 + +lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) +{ + return 0; +} + + +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + +#define BASEPIECE base +#define HITSPEED <25.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 3 +#define MAXTILT 200 + +#include "unit_hitbyweaponid_and_smoke.h" + +SetDirection(heading) +{ + var spd; + spd = (get ABS(oldHead) - get ABS(heading)) / 2; + turn ground to y-axis heading speed spd; + turn base to y-axis 0-heading speed spd; + oldHead = heading; +} + +RockOnWaves() +{ + var rockDir, rockAng, rockSpeed; + rockDir = <-0.1>; + rockAng = <-0.1>; + while( TRUE ) + { + while( get ABS(rockAng) < <1.31> ) + { + rockSpeed = <1.45> - get ABS(rockAng); + turn ground to x-axis rockAng speed rockSpeed*4; + wait-for-turn ground around x-axis; + rockAng = rockAng + rockDir; + } + rockDir = 0 - rockDir; + rockAng = rockAng + rockDir + rockDir; + } +} + +ProjXPW(Func_Var_1, Func_Var_2) +{ + if( Func_Var_2 < -21840 ) + { + Static_Var_7 = Func_Var_1 * ( Func_Var_2 + 32760 ) / 10920; + } + else if( Func_Var_2 > 21840 ) + { + Static_Var_7 = Func_Var_1 * ( 32760 - Func_Var_2 ) / 10920; + } + else if( Func_Var_2 < -10920 ) + { + Static_Var_7 = 0 - Func_Var_1; + } + else if( Func_Var_2 > 10920 ) + { + Static_Var_7 = Func_Var_1; + } + else + { + Static_Var_7 = Func_Var_1 * Func_Var_2 / 10920; + } +} + +RockZ(Func_Var_1, Func_Var_2) +{ + signal 4096; + set-signal-mask 4096; + call-script ProjXPW(10920 / Func_Var_2,Func_Var_1); + Static_Var_8 = Static_Var_8 + Static_Var_7; + Static_Var_7 = get ABS(Static_Var_8); + while( Static_Var_7 > 91 ) + { + turn base to z-axis Static_Var_8 speed Static_Var_7 * <0.0125>; + wait-for-turn base around z-axis; + Static_Var_8 = Static_Var_8 * -1 / 2; + Static_Var_7 = get ABS(Static_Var_8); + } + turn base to z-axis <0.000000> speed <1.5>; +} + +PilotLight(Func_Var_1) +{ + while( TRUE ) + { + emit-sfx 1024 + 2 from flare; + sleep 40; + } +} + + +Create() +{ + hide wake2; + hide wake1; + hide flare; + hide ground; + gun_1 = 1; + restore_delay = 3000; + while( get BUILD_PERCENT_LEFT ) + { + sleep 500; + } + start-script RockOnWaves(); + start-script PilotLight(); +} + +SetMaxReloadTime(Func_Var_1) +{ + restore_delay = 3000; +} + +static-var Stunned; +ExecuteRestoreAfterDelay() +{ + if (Stunned) { + return (1); + } + set-signal-mask 0; + turn turret to y-axis <0.000000> speed <180.000000>; + turn sleeve to x-axis <0.000000> speed <90.000000>; +} +SetStunned(State) +{ + Stunned = State; + if (!Stunned) { + start-script ExecuteRestoreAfterDelay(); + } +} +RestoreAfterDelay() +{ + sleep restore_delay; + start-script ExecuteRestoreAfterDelay(); +} + +waveSplash() +{ + while( TRUE ) + { + turn base to x-axis <-3.0> speed <3.0>; + move base to y-axis [0.32] speed [0.25]; + wait-for-turn base around x-axis; + turn base to x-axis <0.0> speed <3.0>; + move base to y-axis [0.0] speed [0.25]; + wait-for-turn base around x-axis; + } +} + +StartMoving() +{ + signal SIG_MOVE; + set-signal-mask SIG_MOVE; + var waketime; + start-script waveSplash(); + var bowtime; + bowtime = 0; + while( TRUE ) + { + emit-sfx 1024 + 0 from wake1; + if (bowtime) emit-sfx 1024 + 1 from wake2; + bowtime = !bowtime; + waketime = (get CURRENT_SPEED) * 100 / get MAX_SPEED; + if( waketime < 50 ) waketime = 50; + sleep 10000 / waketime; + } +} + +StopMoving() +{ + signal SIG_MOVE; + turn base to x-axis <0.0> speed <3.0>; + move base to y-axis [0.0] speed [0.25]; +} + +AimPrimary(heading, pitch) +{ + signal SIG_AIM; + set-signal-mask SIG_AIM; + turn turret to y-axis heading speed <150.000000>; + turn sleeve to x-axis -1*pitch speed <150.000000>; + wait-for-turn turret around y-axis; + wait-for-turn sleeve around x-axis; + start-script RestoreAfterDelay(); + return (1); +} + +Shot1() +{ + call-script lua_FlameShot(1); + emit-sfx 1024 + 3 from flare; + return (TRUE); +} + +AimFromPrimary(piecenum) +{ + piecenum = sleeve; + return (0); +} + +QueryPrimary(piecenum) +{ + piecenum = flare; + return (0); +} + +AimSecondary(heading, pitch) +{ + signal SIG_AIM_2; + set-signal-mask SIG_AIM_2; + turn mturret to y-axis heading speed <300.000000>; + turn mbarrel to x-axis <0> - pitch speed <300>; //? + wait-for-turn mturret around y-axis; + wait-for-turn mbarrel around x-axis; + start-script RestoreAfterDelay(); + return (1); +} + +FireSecondary() +{ + ++gun_1; + if( gun_1 == 4 ) + { + gun_1 = 1; + } + return (0); +} + +AimFromSecondary(piecenum) +{ + piecenum = mturret; + return (0); +} + +QuerySecondary(piecenum) +{ + if( gun_1 == 1 ) + { + piecenum = flare1; + } + if( gun_1 == 2 ) + { + piecenum = flare2; + } + if( gun_1 == 3 ) + { + piecenum = flare3; + } + return (0); +} + +SweetSpot(piecenum) +{ + piecenum = base; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1; + explode sleeve type BITMAPONLY | BITMAP1 | NOHEATCLOUD; + explode turret type BITMAPONLY | BITMAP1 | NOHEATCLOUD; + explode wake2 type BITMAPONLY | BITMAP3 | NOHEATCLOUD; + return (corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2; + explode sleeve type FALL | EXPLODE_ON_HIT | BITMAP1 | NOHEATCLOUD; + explode wake2 type FALL | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; + return (corpsetype); + } + corpsetype = 3; + explode sleeve type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1 | NOHEATCLOUD; + explode wake1 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2 | NOHEATCLOUD; + explode wake2 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/corfship.cob b/scripts/Units/corfship.cob new file mode 100644 index 00000000000..1aed30bd920 Binary files /dev/null and b/scripts/Units/corfship.cob differ diff --git a/scripts/Units/corfship_clean.bos b/scripts/Units/corfship_clean.bos index c40149a2d67..d296a3b2f04 100644 --- a/scripts/Units/corfship_clean.bos +++ b/scripts/Units/corfship_clean.bos @@ -11,6 +11,12 @@ static-var restore_delay, aimDir, oldHead, gun_1; #define SIGNAL_MOVE 1 + +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + #define RB_MASS 30 #define RB_LENGTH 7 #define RB_WIDTH 3 @@ -100,6 +106,7 @@ AimWeapon1(heading, pitch) Shot1() { + call-script lua_FlameShot(1); emit-sfx 1024 + 3 from flare; return (TRUE); } diff --git a/scripts/Units/corfship_clean.cob b/scripts/Units/corfship_clean.cob index 74ff641e65b..ee376f4295b 100644 Binary files a/scripts/Units/corfship_clean.cob and b/scripts/Units/corfship_clean.cob differ diff --git a/scripts/Units/corgant.bos b/scripts/Units/corgant.bos index c3a09bb8bb2..1d34d3ed039 100644 --- a/scripts/Units/corgant.bos +++ b/scripts/Units/corgant.bos @@ -121,9 +121,9 @@ StartBuilding() show cagelight_emit; show cagelight_emit2; show cagelight_emit3; - spin cagelight around y-axis speed <200> accelerate <4>; - spin cagelight2 around y-axis speed <-200> accelerate <4>; - spin cagelight_emit3 around y-axis speed <200> accelerate <4>; + spin cagelight around y-axis speed <200> accelerate <1>; + spin cagelight2 around y-axis speed <-200> accelerate <1>; + spin cagelight_emit3 around y-axis speed <200> accelerate <1>; } StopBuilding() // give the gantry a 1 second breathing room diff --git a/scripts/Units/corgant.cob b/scripts/Units/corgant.cob index df1bbf00124..a80d89cbb3f 100644 Binary files a/scripts/Units/corgant.cob and b/scripts/Units/corgant.cob differ diff --git a/scripts/Units/corgatet3.bos b/scripts/Units/corgatet3.bos new file mode 100644 index 00000000000..bcc25225ab3 --- /dev/null +++ b/scripts/Units/corgatet3.bos @@ -0,0 +1,165 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece base, dish; + +static-var Static_Var_1, statechg_DesiredState, statechg_StateChanging; +static-var Stunned; + + +ShieldOn() +{ + Static_Var_1 = 1; +} + +ShieldOff() +{ + Static_Var_1 = 0; +} + +InitState() +{ + statechg_DesiredState = TRUE; + statechg_StateChanging = FALSE; +} + +RequestState(requestedstate, currentstate) +{ + if( statechg_StateChanging ) + { + statechg_DesiredState = requestedstate; + return (0); + } + statechg_StateChanging = TRUE; + currentstate = statechg_DesiredState; + statechg_DesiredState = requestedstate; + while( statechg_DesiredState != currentstate ) + { + if( statechg_DesiredState == 0 ) + { + call-script ShieldOn(); + currentstate = 0; + } + if( statechg_DesiredState == 1 ) + { + call-script ShieldOff(); + currentstate = 1; + } + } + statechg_StateChanging = FALSE; +} + +Go() +{ + spin dish around y-axis speed <15.000000>; +} +Stop() +{ + spin dish around y-axis speed <0.000000>; +} +Create() +{ + call-script Go(); + call-script InitState(); +} +SetStunned(State) +{ + Stunned = State; + if (Stunned) { + call-script Stop(); + } else { + call-script Go(); + } +} + +#define SMOKEPIECE base +#include "smokeunit_thread_nohit.h" + + +Activate() +{ + start-script RequestState(0); +} + +Deactivate() +{ + start-script RequestState(1); +} + +AimPrimary(heading, pitch) +{ + sleep 100; + return (Static_Var_1); +} + +FirePrimary() +{ + sleep 100; +} + +QueryPrimary(piecenum) +{ + piecenum = base; +} + +AimFromPrimary(piecenum) +{ + piecenum = base; +} + +SweetSpot(piecenum) +{ + piecenum = base; +} + +AimSecondary(heading, pitch) +{ + sleep 100; + return (Static_Var_1); +} + +FireSecondary() +{ + sleep 100; +} + +QuerySecondary(piecenum) +{ + piecenum = base; +} + +AimFromSecondary(piecenum) +{ + piecenum = base; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode dish type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode dish type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode dish type SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dish type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/corgatet3.cob b/scripts/Units/corgatet3.cob new file mode 100644 index 00000000000..f64f47adfdb Binary files /dev/null and b/scripts/Units/corgatet3.cob differ diff --git a/scripts/Units/corint_clean.bos b/scripts/Units/corint_clean.bos index bb08314db0c..3b65a5d00ce 100644 --- a/scripts/Units/corint_clean.bos +++ b/scripts/Units/corint_clean.bos @@ -1,7 +1,7 @@ #include "../recoil_common_includes.h" -piece base, flare, turret, gun, barrel, bore, cylinder, light, heat; +piece base, flare, turret, gun, barrel, bore, cylinder, light; static-var shotcount; // Signal definitions @@ -11,7 +11,6 @@ Create() { hide flare; show light; - show heat; shotcount = 0; } @@ -24,11 +23,6 @@ lua_UnitScriptLight(lightIndex, count) return 0; } -lua_UnitScriptDistortion(lightIndex, count) -{ - return 0; -} - #define BASEPIECE base #define MAXTILT 0 #include "../unit_hitbyweaponid_and_smoke.h" @@ -54,7 +48,7 @@ AimWeapon1(heading, pitch) FireWeapon1() { - + shotcount = shotcount + 1; //start-script HotBarrel(); move barrel to z-axis [-7.500000] speed [500.0]; move gun to z-axis [-4.0] speed [500.0]; @@ -62,14 +56,9 @@ FireWeapon1() emit-sfx 1024 + 0 from flare; call-script lua_UnitScriptLight(1, shotcount); call-script lua_UnitScriptLight(2, shotcount); - call-script lua_UnitScriptDistortion(1, shotcount); - shotcount = shotcount + 1; - //show heat; sleep 200; move barrel to z-axis [0.0] speed [3.500000]; move gun to z-axis [0.0] speed [3.500000]; - //sleep 2000; - //hide heat; } AimFromWeapon1(pieceIndex) diff --git a/scripts/Units/corint_clean.cob b/scripts/Units/corint_clean.cob index 58f85a57d5c..27a1099e060 100644 Binary files a/scripts/Units/corint_clean.cob and b/scripts/Units/corint_clean.cob differ diff --git a/scripts/Units/corjamt.bos b/scripts/Units/corjamt.bos index 3b51f93921b..de1796e5cc6 100644 --- a/scripts/Units/corjamt.bos +++ b/scripts/Units/corjamt.bos @@ -4,7 +4,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, dish, jam; +piece base,dish; static-var statechg_DesiredState, statechg_StateChanging; static-var Stunned; @@ -12,18 +12,16 @@ static-var Stunned; Go() { - show jam; - spin dish around y-axis speed <200.000000> accelerate <1>; + spin dish around y-axis speed <150.000000>; return (0); } Stop() { - hide jam; - stop-spin dish around y-axis decelerate <6>; + stop-spin dish around y-axis; return (0); } SetStunned(State) -{ +{c Stunned = State; if (Stunned) { call-script Stop(); @@ -68,7 +66,6 @@ RequestState(requestedstate, currentstate) Create() { - hide jam; call-script InitState(); return (0); } diff --git a/scripts/Units/corjamt.cob b/scripts/Units/corjamt.cob index d3783a2bd53..7431ce592f8 100644 Binary files a/scripts/Units/corjamt.cob and b/scripts/Units/corjamt.cob differ diff --git a/scripts/Units/corjugg_clean.bos b/scripts/Units/corjugg_clean.bos index 32db8aeb6c9..33fc03df74e 100644 --- a/scripts/Units/corjugg_clean.bos +++ b/scripts/Units/corjugg_clean.bos @@ -2,26 +2,19 @@ #include "../recoil_common_includes.h" piece torso, lbleg, lfleg, rbleg, rfleg, lbfoot, lffoot, rbfoot, rffoot, lbtoe, lftoe, rbtoe, rftoe, aimy1, - turret,sleeve, mainbarrel, mainbarrelflare , llaser, llaserflare, rlaser, rlaserflare, toplaser, toplaserflare, tail, - lfootstepf, rfootstepf, lfootstepb, rfootstepb; + turret,sleeve, mainbarrel, mainbarrelflare , llaser, llaserflare, rlaser, rlaserflare, toplaser, toplaserflare, tail; static-var isMoving, restore_delay, mainturretheading; // Generated for N:\animations\corjugg_anim_walk_v2.blend // Using https://github.com/Beherith/Skeletor_S3O // this animation uses the static-var animFramesPerKeyframe which contains how many frames each keyframe takes -static-var animSpeed, maxSpeed, animFramesPerKeyframe, stepcount; +static-var animSpeed, maxSpeed, animFramesPerKeyframe; lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) { return 0; } - -lua_UnitScriptDistortion(lightIndex, xpos, zpos, heading) -{ - return 0; -} - #define SIGNAL_MOVE 1 Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations\corjugg_anim_walk_v2.blend set-signal-mask SIGNAL_MOVE; @@ -95,10 +88,6 @@ Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations sleep ((33*animSpeed) -1); } if (isMoving) { //Frame:20 - emit-sfx 4096 + 4 from rfootstepf; - //call-script lua_UnitScriptDistortion(2, (get PIECE_XZ(rfootstepf) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lfootstepf) & 0x0000ffff), get HEADING(0)); - call-script lua_UnitScriptDistortion(2, stepcount); - stepcount = stepcount + 1; turn lbfoot to x-axis <-40.396259> speed <355.397726> / animSpeed; //delta=11.85 turn lbfoot to z-axis <0.054497> speed <3.355363> / animSpeed; //delta=0.11 turn lbleg to x-axis <-1.272532> speed <116.740392> / animSpeed; //delta=-3.89 @@ -127,10 +116,6 @@ Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations sleep ((33*animSpeed) -1); } if (isMoving) { //Frame:25 - emit-sfx 4096 + 4 from lfootstepb; - //call-script lua_UnitScriptDistortion(3, (get PIECE_XZ(lfootstepb) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lfootstepb) & 0x0000ffff), get HEADING(0)); - call-script lua_UnitScriptDistortion(3, stepcount); - stepcount = stepcount + 1; turn lbfoot to x-axis <-38.214478> speed <65.453430> / animSpeed; //delta=-2.18 turn lbleg to x-axis <2.913103> speed <125.569060> / animSpeed; //delta=-4.19 turn lbleg to y-axis <-0.069229> speed <5.041008> / animSpeed; //delta=0.17 @@ -337,10 +322,6 @@ Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations sleep ((33*animSpeed) -1); } if (isMoving) { //Frame:60 - emit-sfx 4096 + 4 from lfootstepf; - //call-script lua_UnitScriptDistortion(1, (get PIECE_XZ(lfootstepf) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lfootstepf) & 0x0000ffff), get HEADING(0)); - call-script lua_UnitScriptDistortion(1, stepcount); - stepcount = stepcount + 1; turn lbfoot to x-axis <39.275179> speed <428.187650> / animSpeed; //delta=-14.27 turn lbleg to x-axis <6.702107> speed <59.494619> / animSpeed; //delta=1.98 turn lbleg to z-axis <-1.009790> speed <9.694171> / animSpeed; //delta=-0.32 @@ -373,10 +354,6 @@ Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations sleep ((33*animSpeed) -1); } if (isMoving) { //Frame:65 - emit-sfx 4096 + 4 from rfootstepb; - //call-script lua_UnitScriptDistortion(4, (get PIECE_XZ(rfootstepb) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rfootstepb) & 0x0000ffff), get HEADING(0)); - call-script lua_UnitScriptDistortion(4, stepcount); - stepcount = stepcount + 1; turn lbfoot to x-axis <39.119150> speed <4.680865> / animSpeed; //delta=0.16 turn lbfoot to z-axis <-0.333592> speed <25.425057> / animSpeed; //delta=-0.85 turn lbfoot to y-axis <0.140686> speed <11.121313> / animSpeed; //delta=-0.37 @@ -659,7 +636,6 @@ Create() animSpeed = 5; mainturretheading = 0; restore_delay = 3000; - stepcount = 0; } SetMaxReloadTime(reloadMS) diff --git a/scripts/Units/corjugg_clean.cob b/scripts/Units/corjugg_clean.cob index ea4be941703..b631e89788d 100644 Binary files a/scripts/Units/corjugg_clean.cob and b/scripts/Units/corjugg_clean.cob differ diff --git a/scripts/Units/corkorg_clean.bos b/scripts/Units/corkorg_clean.bos index 507d2e7a3c8..1f758b7a40a 100644 --- a/scripts/Units/corkorg_clean.bos +++ b/scripts/Units/corkorg_clean.bos @@ -13,11 +13,6 @@ lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) return 0; } -lua_UnitScriptDistortion(lightIndex, xpos, zpos, heading) -{ - return 0; -} - #define SIGNAL_FOOTSTOMP_L 8 #define SIGNAL_FOOTSTOMP_R 16 #define SIGNAL_HEAD 2 @@ -169,7 +164,6 @@ Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations if (isMoving) { //Frame:40 emit-sfx 4096 + 5 from rfootstep; call-script lua_UnitScriptDecal(1, (get PIECE_XZ(rfootstep) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rfootstep) & 0x0000ffff), get HEADING(0)); - call-script lua_UnitScriptDistortion(1, (get PIECE_XZ(rfootstep) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rfootstep) & 0x0000ffff), get HEADING(0)); turn head to x-axis <4.682400> speed <21.527992> / animSpeed; //delta=0.72 turn head to z-axis <1.894785> speed <28.988457> / animSpeed; //delta=-0.97 @@ -363,7 +357,6 @@ Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations if (isMoving) { //Frame:88 emit-sfx 4096 + 5 from lfootstep; call-script lua_UnitScriptDecal(1, (get PIECE_XZ(lfootstep) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lfootstep) & 0x0000ffff), get HEADING(0)); - call-script lua_UnitScriptDistortion(1, (get PIECE_XZ(lfootstep) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lfootstep) & 0x0000ffff), get HEADING(0)); turn head to x-axis <4.324000> speed <20.280001> / animSpeed; //delta=0.68 turn head to z-axis <-1.588889> speed <23.333328> / animSpeed; //delta=0.78 turn head to y-axis <-2.096296> speed <47.222216> / animSpeed; //delta=1.57 diff --git a/scripts/Units/corkorg_clean.cob b/scripts/Units/corkorg_clean.cob index 29ba070c7c7..42244b4e224 100644 Binary files a/scripts/Units/corkorg_clean.cob and b/scripts/Units/corkorg_clean.cob differ diff --git a/scripts/Units/cormabm.bos b/scripts/Units/cormabm.bos index 42884e66471..1bb33ded2d9 100644 --- a/scripts/Units/cormabm.bos +++ b/scripts/Units/cormabm.bos @@ -1,8 +1,7 @@ #include "../recoil_common_includes.h" -piece base, dbl, dbr, dtr, dtl, dummy, turret, -greendbr, greendtr, greendtl, greendbl, orangelight; +piece base, dbl, dbr, dtr, dtl, dummy, turret; // Signal definitions #define SIGNAL_MOVE 1 diff --git a/scripts/Units/cormabm_clean.bos b/scripts/Units/cormabm_clean.bos index 2e4bd1be07e..1bb33ded2d9 100644 --- a/scripts/Units/cormabm_clean.bos +++ b/scripts/Units/cormabm_clean.bos @@ -1,10 +1,7 @@ #include "../recoil_common_includes.h" -piece base, dbl, dbr, dtr, dtl, dummy, turret, -greendbr, greendtr, greendtl, greendbl, orangelight; - -static-var restore_delay, missiles_stockpiled; +piece base, dbl, dbr, dtr, dtl, dummy, turret; // Signal definitions #define SIGNAL_MOVE 1 @@ -30,13 +27,6 @@ static-var Stunned; Create() { call-script TB_Init(); - restore_delay = 3000; - missiles_stockpiled = 0; - hide greendbr; - hide greendtl; - hide greendtr; - hide greendbl; - show orangelight; } StartMoving(reversing) @@ -69,11 +59,6 @@ ExecuteRestoreAfterDelay() move dtr to z-axis [0] speed [1]; } -SetMaxReloadTime(reloadMS) -{ - restore_delay = reloadMS * 2; -} - SetStunned(State) { Stunned = State; @@ -116,40 +101,6 @@ QueryWeapon1(pieceIndex) return (0); } -lights_orange() -{ - hide greendbr; - hide greendtl; - hide greendtr; - hide greendbl; - show orangelight; -} - -lights_green() -{ - show greendbr; - show greendtl; - show greendtr; - show greendbl; - hide orangelight; -} - -SetStockpile(num_stockpiled) -{ - if (num_stockpiled == 0) - { - start-script lights_orange(); - sleep 100; - missiles_stockpiled = 0; - } - if (num_stockpiled >= 1) - { - start-script lights_green(); - sleep 100; - missiles_stockpiled = 1; - } -} - Killed(severity, corpsetype) { if( severity <= 25 ) diff --git a/scripts/Units/cormabm_clean.cob b/scripts/Units/cormabm_clean.cob index d9606fda6ef..02c432176eb 100644 Binary files a/scripts/Units/cormabm_clean.cob and b/scripts/Units/cormabm_clean.cob differ diff --git a/scripts/Units/cormaw.bos b/scripts/Units/cormaw.bos new file mode 100644 index 00000000000..f723c7a0f0e --- /dev/null +++ b/scripts/Units/cormaw.bos @@ -0,0 +1,210 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece base, top, bore, barrel, flare, aimpoint, firepoint; + +static-var Static_Var_1, restore_delay, statechg_DesiredState, statechg_StateChanging; + +// Signal definitions +#define SIG_AIM 2 + +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + +Go() +{ + set ARMORED to 0; + move top to y-axis [8.000000] speed [19.989014]; + wait-for-move top along y-axis; + move bore to z-axis [0.000000] speed [19.989014]; + move barrel to z-axis [0.000000] speed [19.989014]; + Static_Var_1 = 1; +} + +Stop() +{ + set ARMORED to 1; + Static_Var_1 = 0; + turn top to y-axis <0.000000> speed <300.000000>; + move bore to z-axis [-6] speed [19.989014]; + move barrel to z-axis [-6.5] speed [19.989014]; + wait-for-move barrel along z-axis; + wait-for-move bore along z-axis; + move top to y-axis [-11.9] speed [48]; + wait-for-move top along y-axis; +} + +InitState() +{ + statechg_DesiredState = TRUE; + statechg_StateChanging = FALSE; +} + +RequestState(requestedstate, currentstate) +{ + if( statechg_StateChanging ) + { + statechg_DesiredState = requestedstate; + return (0); + } + statechg_StateChanging = TRUE; + currentstate = statechg_DesiredState; + statechg_DesiredState = requestedstate; + while( statechg_DesiredState != currentstate ) + { + if( statechg_DesiredState == 0 ) + { + call-script Go(); + currentstate = 0; + } + if( statechg_DesiredState == 1 ) + { + call-script Stop(); + currentstate = 1; + } + } + statechg_StateChanging = FALSE; +} + +Create() +{ + hide aimpoint; + hide firepoint; + hide flare; + hide flare; + restore_delay = 2000; + Static_Var_1 = 0; + call-script InitState(); + start-script RequestState(0); + while( get BUILD_PERCENT_LEFT ) + { + sleep 250; + } + move aimpoint to y-axis [8] now; + start-script RequestState(1); +} + +Activate() +{ + start-script RequestState(0); +} + +Deactivate() +{ + start-script RequestState(1); +} + +SetMaxReloadTime(Func_Var_1) +{ + restore_delay = Func_Var_1 * 3; +} + +static-var Stunned; +ExecuteRestoreAfterDelay() +{ + if (Stunned) { + return (1); + } + set-signal-mask 0; + start-script RequestState(1); +} +SetStunned(State) +{ + Stunned = State; + if (!Stunned) { + start-script ExecuteRestoreAfterDelay(); + } +} +RestoreAfterDelay() +{ + sleep restore_delay; + start-script ExecuteRestoreAfterDelay(); +} + +AimPrimary(heading, pitch) +{ + start-script RequestState(0); + signal SIG_AIM; + set-signal-mask SIG_AIM; + while( !Static_Var_1 ) + { + sleep 250; + } + turn top to y-axis heading speed <300.000000>; + turn firepoint to x-axis <0.000000> - pitch speed <110.000000>; + wait-for-turn top around y-axis; + wait-for-turn firepoint around x-axis; + start-script RestoreAfterDelay(); + return (1); +} + +Shot1() +{ + call-script lua_FlameShot(1); + emit-sfx 1024 + 0 from firepoint; + return (TRUE); +} + +FirePrimary() +{ +} + +QueryPrimary(piecenum) +{ + piecenum = firepoint; +} + +SweetSpot(piecenum) +{ + piecenum = base; +} + +AimFromPrimary(piecenum) +{ + piecenum = aimpoint; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode top type BITMAPONLY | NOHEATCLOUD; + explode bore type BITMAPONLY | NOHEATCLOUD; + explode barrel type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flare type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode top type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode bore type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrel type FALL | NOHEATCLOUD; + explode flare type FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode top type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode bore type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode barrel type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flare type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode top type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode bore type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode barrel type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode flare type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} \ No newline at end of file diff --git a/scripts/Units/cormaw.cob b/scripts/Units/cormaw.cob new file mode 100644 index 00000000000..92e39656387 Binary files /dev/null and b/scripts/Units/cormaw.cob differ diff --git a/scripts/Units/cormaw_clean.bos b/scripts/Units/cormaw_clean.bos index 17996d6d375..20ca3f06807 100644 --- a/scripts/Units/cormaw_clean.bos +++ b/scripts/Units/cormaw_clean.bos @@ -10,6 +10,10 @@ static-var isOpen, restore_delay; #include "../opencloseanim.h" +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} Open() { @@ -105,6 +109,7 @@ AimWeapon1(heading, pitch) Shot1() { + call-script lua_FlameShot(1); emit-sfx 1024 + 0 from firepoint; return (TRUE); } diff --git a/scripts/Units/cormaw_clean.cob b/scripts/Units/cormaw_clean.cob index e20a6ee1b34..7978e8bc465 100644 Binary files a/scripts/Units/cormaw_clean.cob and b/scripts/Units/cormaw_clean.cob differ diff --git a/scripts/Units/cornanotc.bos b/scripts/Units/cornanotc.bos index 2f3d33c11e6..ccd280562eb 100644 --- a/scripts/Units/cornanotc.bos +++ b/scripts/Units/cornanotc.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, aim, emitnano, cagelight, cagelight_emit; +piece base, aim, emitnano; static-var Static_Var_1, Static_Var_2, statechg_DesiredState, statechg_StateChanging; @@ -148,7 +148,6 @@ Killed(severity, corpsetype) explode base type BITMAPONLY | NOHEATCLOUD; explode aim type FIRE | SMOKE | FALL | NOHEATCLOUD; explode emitnano type BITMAPONLY | NOHEATCLOUD; - explode cagelight type BITMAPONLY | NOHEATCLOUD; return(corpsetype); } if( severity <= 50 ) @@ -157,7 +156,6 @@ Killed(severity, corpsetype) explode base type BITMAPONLY | NOHEATCLOUD; explode aim type FIRE | SMOKE | FALL | NOHEATCLOUD; explode emitnano type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode cagelight type FIRE | SMOKE | FALL | NOHEATCLOUD; return(corpsetype); } if( severity <= 99 ) @@ -166,13 +164,11 @@ Killed(severity, corpsetype) explode base type FIRE | SMOKE | FALL | NOHEATCLOUD; explode aim type SMOKE | FALL | NOHEATCLOUD; explode emitnano type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; - explode cagelight type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; return(corpsetype); } corpsetype = 3 ; explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; explode aim type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; explode emitnano type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode cagelight type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; return corpsetype; } diff --git a/scripts/Units/cornanotc.cob b/scripts/Units/cornanotc.cob index e535338a716..3519bc0ad43 100644 Binary files a/scripts/Units/cornanotc.cob and b/scripts/Units/cornanotc.cob differ diff --git a/scripts/Units/corptl.bos b/scripts/Units/corptl.bos deleted file mode 100644 index ca991a00198..00000000000 --- a/scripts/Units/corptl.bos +++ /dev/null @@ -1,75 +0,0 @@ -#define TA // This is a TA script - -#include "sfxtype.h" -#include "exptype.h" - -piece base, flare, gun, pointer; - -// Signal definitions -#define SIG_AIM 2 - -#define BASEPIECE base -#define HITSPEED <20.0> -//how 'heavy' the unit is, on a scale of 1-10 -#define UNITSIZE 5 -#define MAXTILT 200 - -#include "unit_hitbyweaponid_and_smoke.h" - -Create() -{ -} - -AimPrimary(heading, pitch) -{ - signal SIG_AIM; - set-signal-mask SIG_AIM; - turn gun to y-axis heading speed <140.000000>; - wait-for-turn gun around y-axis; - return (1); -} - -AimFromPrimary(piecenum) -{ - piecenum = base; -} - -QueryPrimary(piecenum) -{ - piecenum = flare; -} - -SweetSpot(piecenum) -{ - piecenum = base; -} - -Killed(severity, corpsetype) -{ - if( severity <= 25 ) - { - corpsetype = 1; - return (corpsetype); - } - if( severity <= 50 ) - { - corpsetype = 2; - explode flare type FALL | BITMAP2 | NOHEATCLOUD; - explode gun type FIRE | SMOKE | FALL | BITMAP3 | NOHEATCLOUD; - explode pointer type FALL | BITMAP4 | NOHEATCLOUD; - return (corpsetype); - } - if( severity <= 99 ) - { - corpsetype = 3; - explode flare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2 | NOHEATCLOUD; - explode gun type FIRE | SMOKE | FALL | BITMAP3 | NOHEATCLOUD; - explode pointer type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - return (corpsetype); - } - corpsetype = 3; - explode flare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2 | NOHEATCLOUD; - explode gun type FIRE | SMOKE | FALL | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; - explode pointer type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - return corpsetype; -} diff --git a/scripts/Units/corptl.cob b/scripts/Units/corptl.cob deleted file mode 100644 index 272bc863343..00000000000 Binary files a/scripts/Units/corptl.cob and /dev/null differ diff --git a/scripts/Units/corptl_clean.bos b/scripts/Units/corptl_clean.bos deleted file mode 100644 index 3e7daeb32e4..00000000000 --- a/scripts/Units/corptl_clean.bos +++ /dev/null @@ -1,70 +0,0 @@ - -#include "../recoil_common_includes.h" - -piece base, flare, gun, pointer; - -// Signal definitions -#define SIGNAL_AIM1 256 - -#define BASEPIECE base -#define HITSPEED <20.0> -//how 'heavy' the unit is, on a scale of 1-10 -#define UNITSIZE 5 -#define MAXTILT 200 - -#include "../unit_hitbyweaponid_and_smoke.h" - -Create() -{ -} - -AimWeapon1(heading, pitch) -{ - signal SIGNAL_AIM1; - set-signal-mask SIGNAL_AIM1; - turn gun to y-axis heading speed <140.0>; - wait-for-turn gun around y-axis; - return (1); -} - -AimFromWeapon1(pieceIndex) -{ - pieceIndex = base; -} - -QueryWeapon1(pieceIndex) -{ - pieceIndex = flare; -} - - - -Killed(severity, corpsetype) -{ - if( severity <= 25 ) - { - corpsetype = 1; - return (corpsetype); - } - if( severity <= 50 ) - { - corpsetype = 2; - explode flare type FALL | BITMAP2 | NOHEATCLOUD; - explode gun type FIRE | SMOKE | FALL | BITMAP3 | NOHEATCLOUD; - explode pointer type FALL | BITMAP4 | NOHEATCLOUD; - return (corpsetype); - } - if( severity <= 99 ) - { - corpsetype = 3; - explode flare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2 | NOHEATCLOUD; - explode gun type FIRE | SMOKE | FALL | BITMAP3 | NOHEATCLOUD; - explode pointer type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - return (corpsetype); - } - corpsetype = 3; - explode flare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2 | NOHEATCLOUD; - explode gun type FIRE | SMOKE | FALL | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; - explode pointer type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - return corpsetype; -} diff --git a/scripts/Units/corptl_clean.cob b/scripts/Units/corptl_clean.cob deleted file mode 100644 index cde3fa0b365..00000000000 Binary files a/scripts/Units/corptl_clean.cob and /dev/null differ diff --git a/scripts/Units/corpyro.bos b/scripts/Units/corpyro.bos new file mode 100644 index 00000000000..067bcc8c6b1 --- /dev/null +++ b/scripts/Units/corpyro.bos @@ -0,0 +1,613 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece torso, ruparm, luparm, flare, pelvis, rleg, rfoot, lleg, lfoot, lthigh, rthigh, lknee, rknee, lloarm, head, backpack, aimy1, aimx1; + +static-var bMoving, bAiming, restore_delay, wpn1_lasthead, currentSpeed, animSpeed, movespeed; + +static-var maxSpeed, animFramesPerKeyframe; +// Signal definitions +#define SIG_AIM 4 +#define SIG_WALK 2 + + +lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) +{ + return 0; +} + + +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + +Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations\corpyro_anim_walk.blend + //set-signal-mask SIG_WALK; + if (bMoving) { //Frame:3 + turn head to y-axis <-1.600000> speed <47.999996> / animSpeed; //delta=-1.60 + turn lfoot to x-axis <-48.749789> speed <1641.513271> / animSpeed; //delta=54.72 + turn lfoot to z-axis <-9.326835> speed <239.314880> / animSpeed; //delta=7.98 + turn lfoot to y-axis <-9.756001> speed <283.551444> / animSpeed; //delta=-9.45 + turn lknee to x-axis <-22.391484> speed <647.795952> / animSpeed; //delta=21.59 + turn lknee to z-axis <-0.696840> speed <94.138593> / animSpeed; //delta=-3.14 + turn lknee to y-axis <-0.002053> speed <16.982277> / animSpeed; //delta=-0.57 + turn lleg to x-axis <41.783617> speed <1236.761903> / animSpeed; //delta=-41.23 + turn lleg to y-axis <0.029312> speed <11.148650> / animSpeed; //delta=-0.37 + turn lloarm to x-axis <13.124109> speed <393.723452> / animSpeed; //delta=-13.12 + turn lthigh to x-axis <36.836528> speed <1134.654252> / animSpeed; //delta=-37.82 + turn lthigh to z-axis <7.294113> speed <426.653867> / animSpeed; //delta=-14.22 + turn lthigh to y-axis <-1.536293> speed <143.565874> / animSpeed; //delta=-4.79 + turn luparm to x-axis <-3.464769> speed <103.943210> / animSpeed; //delta=3.46 + turn luparm to z-axis <-2.136699> speed <64.101033> / animSpeed; //delta=2.14 + turn luparm to y-axis <-0.672451> speed <20.173587> / animSpeed; //delta=-0.67 + turn pelvis to y-axis <2.000000> speed <59.999993> / animSpeed; //delta=2.00 + turn rfoot to x-axis <39.649098> speed <999.894449> / animSpeed; //delta=-33.33 + turn rfoot to z-axis <0.001560> speed <78.213426> / animSpeed; //delta=2.61 + turn rfoot to y-axis <-0.003064> speed <8.863722> / animSpeed; //delta=-0.30 + turn rknee to x-axis <-18.167178> speed <534.403165> / animSpeed; //delta=17.81 + turn rknee to z-axis <-1.360705> speed <174.449972> / animSpeed; //delta=5.81 + turn rknee to y-axis <-2.041137> speed <39.935577> / animSpeed; //delta=-1.33 + turn rleg to x-axis <-4.791348> speed <127.465459> / animSpeed; //delta=4.25 + turn rleg to z-axis <0.150918> speed <12.778799> / animSpeed; //delta=0.43 + turn rleg to y-axis <-0.260551> speed <24.758725> / animSpeed; //delta=0.83 + turn rthigh to x-axis <-39.367308> speed <1147.956488> / animSpeed; //delta=38.27 + turn rthigh to z-axis <5.921294> speed <66.365170> / animSpeed; //delta=2.21 + turn rthigh to y-axis <3.266669> speed <207.394927> / animSpeed; //delta=6.91 + turn ruparm to x-axis <0.000000> speed <935.999903> / animSpeed; //delta=31.20 + turn ruparm to z-axis <-0.000000> speed <149.999983> / animSpeed; //delta=-5.00 + turn ruparm to y-axis <0.000000> speed <563.999951> / animSpeed; //delta=18.80 + turn torso to z-axis <-4.999999> speed <149.999983> / animSpeed; //delta=5.00 + sleep ((33*animSpeed) -1); + } + while(bMoving) { + if (bMoving) { //Frame:6 + call-script lua_UnitScriptDecal(1, (get PIECE_XZ(lfoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lfoot) & 0x0000ffff), get HEADING(0)); + turn backpack to x-axis <-3.500000> speed <104.999994> / animSpeed; //delta=3.50 + turn head to x-axis <10.999999> speed <329.999975> / animSpeed; //delta=-11.00 + turn head to y-axis <0.900000> speed <74.999991> / animSpeed; //delta=2.50 + turn lfoot to x-axis <-33.400107> speed <460.490466> / animSpeed; //delta=-15.35 + turn lfoot to z-axis <-5.879353> speed <103.424462> / animSpeed; //delta=-3.45 + turn lfoot to y-axis <-7.201198> speed <76.644071> / animSpeed; //delta=2.55 + turn lknee to x-axis <-22.265496> speed <3.779639> / animSpeed; //delta=-0.13 + turn lknee to z-axis <-1.966883> speed <38.101315> / animSpeed; //delta=1.27 + turn lknee to y-axis <-2.731996> speed <81.898273> / animSpeed; //delta=-2.73 + turn lleg to x-axis <51.137237> speed <280.608589> / animSpeed; //delta=-9.35 + turn lleg to z-axis <-0.464645> speed <7.427157> / animSpeed; //delta=0.25 + turn lleg to y-axis <0.713640> speed <20.529854> / animSpeed; //delta=0.68 + turn lloarm to x-axis <-1.843239> speed <449.020461> / animSpeed; //delta=14.97 + turn lthigh to x-axis <63.403150> speed <796.998655> / animSpeed; //delta=-26.57 + turn lthigh to z-axis <-5.167332> speed <373.843348> / animSpeed; //delta=12.46 + turn lthigh to y-axis <9.382225> speed <327.555540> / animSpeed; //delta=10.92 + turn luparm to x-axis <-6.416999> speed <88.566899> / animSpeed; //delta=2.95 + turn luparm to z-axis <-6.463313> speed <129.798416> / animSpeed; //delta=4.33 + turn luparm to y-axis <1.173128> speed <55.367380> / animSpeed; //delta=1.85 + move pelvis to y-axis [-1.000000] speed [30.000000] / animSpeed; //delta=-1.00 + turn pelvis to y-axis <-4.099999> speed <182.999978> / animSpeed; //delta=-6.10 + turn rfoot to x-axis <6.271235> speed <1001.335883> / animSpeed; //delta=33.38 + turn rknee to x-axis <-67.144960> speed <1469.333466> / animSpeed; //delta=48.98 + turn rknee to z-axis <19.956037> speed <639.502252> / animSpeed; //delta=-21.32 + turn rknee to y-axis <25.751516> speed <833.779569> / animSpeed; //delta=27.79 + turn rleg to x-axis <91.280875> speed <2882.166689> / animSpeed; //delta=-96.07 + turn rleg to z-axis <4.092359> speed <118.243213> / animSpeed; //delta=-3.94 + turn rleg to y-axis <-8.260707> speed <240.004670> / animSpeed; //delta=-8.00 + turn rthigh to x-axis <-50.253042> speed <326.572006> / animSpeed; //delta=10.89 + turn rthigh to z-axis <-6.683200> speed <378.134803> / animSpeed; //delta=12.60 + turn rthigh to y-axis <6.671538> speed <102.146049> / animSpeed; //delta=3.40 + turn ruparm to x-axis <5.500000> speed <164.999988> / animSpeed; //delta=-5.50 + turn ruparm to z-axis <-1.000000> speed <29.999997> / animSpeed; //delta=1.00 + turn ruparm to y-axis <-2.000000> speed <59.999993> / animSpeed; //delta=-2.00 + turn torso to x-axis <7.500000> speed <225.000006> / animSpeed; //delta=-7.50 + turn torso to z-axis <-2.500000> speed <74.999991> / animSpeed; //delta=-2.50 + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:9 + turn backpack to x-axis <-7.000000> speed <104.999994> / animSpeed; //delta=3.50 + turn head to x-axis <5.500000> speed <164.999988> / animSpeed; //delta=5.50 + turn head to y-axis <3.399999> speed <74.999988> / animSpeed; //delta=2.50 + turn lfoot to x-axis <-52.065210> speed <559.953115> / animSpeed; //delta=18.67 + turn lfoot to z-axis <-0.000293> speed <176.371788> / animSpeed; //delta=-5.88 + turn lfoot to y-axis <-0.002175> speed <215.970701> / animSpeed; //delta=7.20 + turn lknee to x-axis <16.061243> speed <1149.802173> / animSpeed; //delta=-38.33 + turn lknee to z-axis <1.038110> speed <90.149792> / animSpeed; //delta=-3.00 + turn lknee to y-axis <4.414574> speed <214.397098> / animSpeed; //delta=7.15 + turn lleg to x-axis <1.574157> speed <1486.892409> / animSpeed; //delta=49.56 + turn lleg to z-axis <0.054657> speed <15.579044> / animSpeed; //delta=-0.52 + turn lleg to y-axis <0.130611> speed <17.490858> / animSpeed; //delta=-0.58 + turn lloarm to x-axis <-4.322279> speed <74.371181> / animSpeed; //delta=2.48 + turn lthigh to x-axis <48.839613> speed <436.906130> / animSpeed; //delta=14.56 + turn lthigh to z-axis <-4.376810> speed <23.715655> / animSpeed; //delta=-0.79 + turn lthigh to y-axis <9.718232> speed <10.080207> / animSpeed; //delta=0.34 + turn luparm to x-axis <-16.384925> speed <299.037780> / animSpeed; //delta=9.97 + turn luparm to z-axis <-11.399376> speed <148.081874> / animSpeed; //delta=4.94 + turn luparm to y-axis <-4.395805> speed <167.067985> / animSpeed; //delta=-5.57 + move pelvis to y-axis [-1.300000] speed [8.999999] / animSpeed; //delta=-0.30 + turn pelvis to y-axis <-2.733333> speed <40.999999> / animSpeed; //delta=1.37 + turn rfoot to x-axis <52.438029> speed <1385.003831> / animSpeed; //delta=-46.17 + turn rfoot to z-axis <15.600111> speed <468.729033> / animSpeed; //delta=-15.62 + turn rfoot to y-axis <-23.267910> speed <697.503172> / animSpeed; //delta=-23.25 + turn rknee to x-axis <-28.679309> speed <1153.969544> / animSpeed; //delta=-38.47 + turn rknee to z-axis <-5.750062> speed <771.182973> / animSpeed; //delta=25.71 + turn rknee to y-axis <1.204600> speed <736.407480> / animSpeed; //delta=-24.55 + turn rleg to x-axis <11.143384> speed <2404.124707> / animSpeed; //delta=80.14 + turn rleg to z-axis <-0.933746> speed <150.783126> / animSpeed; //delta=5.03 + turn rleg to y-axis <0.550798> speed <264.345128> / animSpeed; //delta=8.81 + turn rthigh to x-axis <-33.532387> speed <501.619645> / animSpeed; //delta=-16.72 + turn rthigh to y-axis <4.664865> speed <60.200173> / animSpeed; //delta=-2.01 + turn ruparm to x-axis <10.999999> speed <164.999988> / animSpeed; //delta=-5.50 + turn ruparm to z-axis <-2.000000> speed <29.999997> / animSpeed; //delta=1.00 + turn ruparm to y-axis <-4.000000> speed <59.999993> / animSpeed; //delta=-2.00 + turn torso to x-axis <15.000000> speed <225.000006> / animSpeed; //delta=-7.50 + turn torso to z-axis <-0.000000> speed <74.999991> / animSpeed; //delta=-2.50 + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:12 + turn backpack to x-axis <-3.500000> speed <104.999994> / animSpeed; //delta=-3.50 + turn head to x-axis <-0.000000> speed <164.999988> / animSpeed; //delta=5.50 + turn head to y-axis <2.000000> speed <41.999990> / animSpeed; //delta=-1.40 + turn lfoot to x-axis <22.251267> speed <2229.494332> / animSpeed; //delta=-74.32 + turn lknee to x-axis <29.330215> speed <398.069179> / animSpeed; //delta=-13.27 + turn lknee to z-axis <2.642943> speed <48.145006> / animSpeed; //delta=-1.60 + turn lknee to y-axis <2.431722> speed <59.485558> / animSpeed; //delta=-1.98 + turn lleg to x-axis <-37.779750> speed <1180.617207> / animSpeed; //delta=39.35 + turn lleg to z-axis <0.265723> speed <6.331998> / animSpeed; //delta=-0.21 + turn lleg to y-axis <-0.599509> speed <21.903610> / animSpeed; //delta=-0.73 + turn lloarm to x-axis <-2.454607> speed <56.030151> / animSpeed; //delta=-1.87 + turn lthigh to x-axis <4.424527> speed <1332.452569> / animSpeed; //delta=44.42 + turn lthigh to z-axis <-1.382972> speed <89.815152> / animSpeed; //delta=-2.99 + turn lthigh to y-axis <0.903693> speed <264.436165> / animSpeed; //delta=-8.81 + turn luparm to x-axis <-4.048469> speed <370.093702> / animSpeed; //delta=-12.34 + turn luparm to z-axis <-1.629074> speed <293.109049> / animSpeed; //delta=-9.77 + turn luparm to y-axis <-1.773813> speed <78.659764> / animSpeed; //delta=2.62 + move pelvis to y-axis [-0.500000] speed [23.999999] / animSpeed; //delta=0.80 + turn pelvis to y-axis <-1.366666> speed <40.999993> / animSpeed; //delta=1.37 + turn rfoot to x-axis <1.341288> speed <1532.902234> / animSpeed; //delta=51.10 + turn rfoot to z-axis <13.541727> speed <61.751527> / animSpeed; //delta=2.06 + turn rfoot to y-axis <-8.635768> speed <438.964280> / animSpeed; //delta=14.63 + turn rknee to x-axis <2.357654> speed <931.108888> / animSpeed; //delta=-31.04 + turn rknee to z-axis <-6.373974> speed <18.717365> / animSpeed; //delta=0.62 + turn rknee to y-axis <-0.012862> speed <36.523842> / animSpeed; //delta=-1.22 + turn rleg to x-axis <-5.129653> speed <488.191113> / animSpeed; //delta=16.27 + turn rleg to z-axis <-0.569983> speed <10.912882> / animSpeed; //delta=-0.36 + turn rleg to y-axis <1.587317> speed <31.095574> / animSpeed; //delta=1.04 + turn rthigh to x-axis <-0.309303> speed <996.692520> / animSpeed; //delta=-33.22 + turn rthigh to z-axis <-10.645827> speed <121.374327> / animSpeed; //delta=4.05 + turn rthigh to y-axis <4.917520> speed <7.579640> / animSpeed; //delta=0.25 + turn ruparm to x-axis <5.500000> speed <164.999988> / animSpeed; //delta=5.50 + turn ruparm to z-axis <-3.000000> speed <30.000003> / animSpeed; //delta=1.00 + turn ruparm to y-axis <-3.333333> speed <19.999998> / animSpeed; //delta=0.67 + turn torso to x-axis <7.500000> speed <225.000006> / animSpeed; //delta=7.50 + turn torso to z-axis <2.500000> speed <75.000004> / animSpeed; //delta=-2.50 + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:15 + turn backpack to x-axis <-0.000000> speed <104.999994> / animSpeed; //delta=-3.50 + turn head to x-axis <6.549999> speed <196.499983> / animSpeed; //delta=-6.55 + turn head to y-axis <0.600000> speed <42.000003> / animSpeed; //delta=-1.40 + turn lfoot to x-axis <41.312058> speed <571.823711> / animSpeed; //delta=-19.06 + turn lknee to x-axis <-19.428796> speed <1462.770337> / animSpeed; //delta=48.76 + turn lknee to z-axis <1.980247> speed <19.880877> / animSpeed; //delta=0.66 + turn lknee to y-axis <1.462278> speed <29.083332> / animSpeed; //delta=-0.97 + turn lleg to x-axis <-3.402205> speed <1031.326365> / animSpeed; //delta=-34.38 + turn lleg to z-axis <-0.088608> speed <10.629933> / animSpeed; //delta=0.35 + turn lleg to y-axis <0.135683> speed <22.055758> / animSpeed; //delta=0.74 + turn lloarm to x-axis <-0.224021> speed <66.917569> / animSpeed; //delta=-2.23 + turn lthigh to x-axis <-40.141001> speed <1336.965847> / animSpeed; //delta=44.57 + turn lthigh to z-axis <-4.260662> speed <86.330705> / animSpeed; //delta=2.88 + turn lthigh to y-axis <-3.132437> speed <121.083918> / animSpeed; //delta=-4.04 + turn luparm to x-axis <6.926075> speed <329.236317> / animSpeed; //delta=-10.97 + turn luparm to z-axis <3.941560> speed <167.119010> / animSpeed; //delta=-5.57 + turn luparm to y-axis <1.233274> speed <90.212592> / animSpeed; //delta=3.01 + move pelvis to y-axis [0.000000] speed [15.000000] / animSpeed; //delta=0.50 + turn pelvis to y-axis <0.000000> speed <40.999993> / animSpeed; //delta=1.37 + turn rfoot to x-axis <-54.506518> speed <1675.434192> / animSpeed; //delta=55.85 + turn rfoot to z-axis <11.663531> speed <56.345885> / animSpeed; //delta=1.88 + turn rfoot to y-axis <9.369193> speed <540.148828> / animSpeed; //delta=18.00 + turn rknee to x-axis <-27.534624> speed <896.768336> / animSpeed; //delta=29.89 + turn rknee to z-axis <1.793924> speed <245.036938> / animSpeed; //delta=-8.17 + turn rknee to y-axis <-0.214449> speed <6.047625> / animSpeed; //delta=-0.20 + turn rleg to x-axis <45.338116> speed <1514.033062> / animSpeed; //delta=-50.47 + turn rleg to z-axis <0.020376> speed <17.710778> / animSpeed; //delta=-0.59 + turn rleg to y-axis <0.216883> speed <41.113002> / animSpeed; //delta=-1.37 + turn rthigh to x-axis <38.705705> speed <1170.450245> / animSpeed; //delta=-39.02 + turn rthigh to z-axis <-11.037324> speed <11.744912> / animSpeed; //delta=0.39 + turn rthigh to y-axis <3.353122> speed <46.931942> / animSpeed; //delta=-1.56 + turn ruparm to x-axis <-0.000000> speed <164.999988> / animSpeed; //delta=5.50 + turn ruparm to z-axis <-4.000000> speed <30.000003> / animSpeed; //delta=1.00 + turn ruparm to y-axis <-2.666666> speed <19.999998> / animSpeed; //delta=0.67 + turn torso to x-axis <-0.000000> speed <225.000006> / animSpeed; //delta=7.50 + turn torso to z-axis <5.000000> speed <74.999991> / animSpeed; //delta=-2.50 + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:18 + call-script lua_UnitScriptDecal(1, (get PIECE_XZ(rfoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rfoot) & 0x0000ffff), get HEADING(0)); + turn backpack to x-axis <-5.249999> speed <157.499979> / animSpeed; //delta=5.25 + turn head to x-axis <13.099999> speed <196.499983> / animSpeed; //delta=-6.55 + turn head to y-axis <2.050000> speed <43.500002> / animSpeed; //delta=1.45 + turn lfoot to x-axis <-2.242562> speed <1306.638584> / animSpeed; //delta=43.55 + turn lknee to x-axis <-69.638123> speed <1506.279803> / animSpeed; //delta=50.21 + turn lknee to z-axis <-10.950481> speed <387.921853> / animSpeed; //delta=12.93 + turn lknee to y-axis <-17.446226> speed <567.255108> / animSpeed; //delta=-18.91 + turn lleg to x-axis <90.204266> speed <2808.194126> / animSpeed; //delta=-93.61 + turn lleg to z-axis <-6.383969> speed <188.860842> / animSpeed; //delta=6.30 + turn lleg to y-axis <9.633818> speed <284.944045> / animSpeed; //delta=9.50 + turn lloarm to x-axis <-11.218750> speed <329.841850> / animSpeed; //delta=10.99 + turn lthigh to x-axis <-46.840611> speed <200.988288> / animSpeed; //delta=6.70 + turn lthigh to z-axis <-2.597096> speed <49.906980> / animSpeed; //delta=-1.66 + turn lthigh to y-axis <-4.133670> speed <30.036988> / animSpeed; //delta=-1.00 + turn luparm to x-axis <14.118349> speed <215.768199> / animSpeed; //delta=-7.19 + turn luparm to z-axis <3.721865> speed <6.590829> / animSpeed; //delta=0.22 + turn luparm to y-axis <6.604783> speed <161.145280> / animSpeed; //delta=5.37 + move pelvis to y-axis [-1.000000] speed [30.000000] / animSpeed; //delta=-1.00 + turn pelvis to y-axis <-4.700000> speed <140.999988> / animSpeed; //delta=-4.70 + turn rfoot to x-axis <-35.327285> speed <575.376980> / animSpeed; //delta=-19.18 + turn rfoot to z-axis <-0.029143> speed <350.780214> / animSpeed; //delta=11.69 + turn rfoot to y-axis <-0.028781> speed <281.939230> / animSpeed; //delta=-9.40 + turn rknee to x-axis <-27.830147> speed <8.865705> / animSpeed; //delta=0.30 + turn rknee to z-axis <0.768142> speed <30.773453> / animSpeed; //delta=1.03 + turn rknee to y-axis <4.736465> speed <148.527433> / animSpeed; //delta=4.95 + turn rleg to x-axis <56.572667> speed <337.036538> / animSpeed; //delta=-11.23 + turn rleg to z-axis <-0.655206> speed <20.267486> / animSpeed; //delta=0.68 + turn rleg to y-axis <-4.330617> speed <136.425013> / animSpeed; //delta=-4.55 + turn rthigh to x-axis <60.374897> speed <650.075754> / animSpeed; //delta=-21.67 + turn rthigh to z-axis <19.318369> speed <910.670795> / animSpeed; //delta=-30.36 + turn rthigh to y-axis <-23.269061> speed <798.665486> / animSpeed; //delta=-26.62 + turn ruparm to x-axis <6.549999> speed <196.499983> / animSpeed; //delta=-6.55 + turn ruparm to z-axis <-5.000000> speed <29.999997> / animSpeed; //delta=1.00 + turn ruparm to y-axis <-2.000000> speed <19.999998> / animSpeed; //delta=0.67 + turn torso to x-axis <6.000000> speed <180.000005> / animSpeed; //delta=-6.00 + turn torso to z-axis <2.500000> speed <75.000004> / animSpeed; //delta=2.50 + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:21 + turn backpack to x-axis <-10.499999> speed <157.499979> / animSpeed; //delta=5.25 + turn head to x-axis <6.549999> speed <196.499983> / animSpeed; //delta=6.55 + turn head to y-axis <3.499999> speed <43.499989> / animSpeed; //delta=1.45 + turn lfoot to x-axis <51.057355> speed <1598.997489> / animSpeed; //delta=-53.30 + turn lfoot to z-axis <-15.120131> speed <455.072386> / animSpeed; //delta=15.17 + turn lfoot to y-axis <22.657064> speed <678.880994> / animSpeed; //delta=22.63 + turn lknee to x-axis <-27.074187> speed <1276.918072> / animSpeed; //delta=-42.56 + turn lknee to z-axis <4.631527> speed <467.460256> / animSpeed; //delta=-15.58 + turn lknee to y-axis <-2.338429> speed <453.233904> / animSpeed; //delta=15.11 + turn lleg to x-axis <8.195020> speed <2460.277391> / animSpeed; //delta=82.01 + turn lleg to z-axis <0.303889> speed <200.635735> / animSpeed; //delta=-6.69 + turn lleg to y-axis <-0.124324> speed <292.744251> / animSpeed; //delta=-9.76 + turn lloarm to x-axis <-7.739390> speed <104.380795> / animSpeed; //delta=-3.48 + turn lthigh to x-axis <-31.736809> speed <453.114067> / animSpeed; //delta=-15.10 + turn lthigh to z-axis <2.991861> speed <167.668724> / animSpeed; //delta=-5.59 + turn lthigh to y-axis <-4.682045> speed <16.451236> / animSpeed; //delta=-0.55 + turn luparm to x-axis <13.590505> speed <15.835315> / animSpeed; //delta=0.53 + turn luparm to z-axis <3.245813> speed <14.281573> / animSpeed; //delta=0.48 + move pelvis to y-axis [-1.300000] speed [8.999999] / animSpeed; //delta=-0.30 + turn pelvis to y-axis <-2.600000> speed <62.999998> / animSpeed; //delta=2.10 + turn rfoot to x-axis <-51.247688> speed <477.612077> / animSpeed; //delta=15.92 + turn rknee to x-axis <15.297546> speed <1293.830782> / animSpeed; //delta=-43.13 + turn rknee to z-axis <-1.164931> speed <57.992182> / animSpeed; //delta=1.93 + turn rknee to y-axis <-3.199922> speed <238.091609> / animSpeed; //delta=-7.94 + turn rleg to x-axis <-1.291094> speed <1735.912845> / animSpeed; //delta=57.86 + turn rleg to z-axis <-0.055487> speed <17.991595> / animSpeed; //delta=-0.60 + turn rleg to y-axis <-0.758183> speed <107.173019> / animSpeed; //delta=3.57 + turn rthigh to x-axis <45.460462> speed <447.433057> / animSpeed; //delta=14.91 + turn rthigh to z-axis <5.127995> speed <425.711211> / animSpeed; //delta=14.19 + turn rthigh to y-axis <-9.918612> speed <400.513473> / animSpeed; //delta=13.35 + turn ruparm to x-axis <13.099999> speed <196.499983> / animSpeed; //delta=-6.55 + turn ruparm to z-axis <-6.000000> speed <29.999997> / animSpeed; //delta=1.00 + turn ruparm to y-axis <-1.333333> speed <19.999998> / animSpeed; //delta=0.67 + turn torso to x-axis <12.000000> speed <180.000005> / animSpeed; //delta=-6.00 + turn torso to z-axis <-0.000000> speed <74.999998> / animSpeed; //delta=2.50 + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:24 + turn backpack to x-axis <-5.249999> speed <157.499979> / animSpeed; //delta=-5.25 + turn head to x-axis <-0.000000> speed <196.499983> / animSpeed; //delta=6.55 + turn head to y-axis <0.950000> speed <76.499991> / animSpeed; //delta=-2.55 + turn lfoot to x-axis <0.766450> speed <1508.727148> / animSpeed; //delta=50.29 + turn lfoot to z-axis <-13.539199> speed <47.427980> / animSpeed; //delta=-1.58 + turn lfoot to y-axis <8.497267> speed <424.793925> / animSpeed; //delta=-14.16 + turn lknee to x-axis <2.795703> speed <896.096681> / animSpeed; //delta=-29.87 + turn lknee to z-axis <6.341661> speed <51.304001> / animSpeed; //delta=-1.71 + turn lknee to y-axis <0.116336> speed <73.642938> / animSpeed; //delta=2.45 + turn lleg to x-axis <-5.328860> speed <405.716400> / animSpeed; //delta=13.52 + turn lleg to y-axis <-0.675953> speed <16.548863> / animSpeed; //delta=-0.55 + turn lloarm to x-axis <2.728441> speed <314.034935> / animSpeed; //delta=-10.47 + turn lthigh to x-axis <-0.137527> speed <947.978455> / animSpeed; //delta=-31.60 + turn lthigh to z-axis <10.853632> speed <235.853136> / animSpeed; //delta=-7.86 + turn lthigh to y-axis <-5.164507> speed <14.473858> / animSpeed; //delta=-0.48 + turn luparm to x-axis <4.518480> speed <272.160725> / animSpeed; //delta=9.07 + turn luparm to z-axis <1.037397> speed <66.252475> / animSpeed; //delta=2.21 + turn luparm to y-axis <2.426354> speed <124.366469> / animSpeed; //delta=-4.15 + move pelvis to y-axis [-0.500000] speed [23.999999] / animSpeed; //delta=0.80 + turn pelvis to y-axis <0.500000> speed <92.999988> / animSpeed; //delta=3.10 + turn rfoot to x-axis <24.664663> speed <2277.370543> / animSpeed; //delta=-75.91 + turn rknee to x-axis <26.695970> speed <341.952738> / animSpeed; //delta=-11.40 + turn rknee to z-axis <-4.254377> speed <92.683386> / animSpeed; //delta=3.09 + turn rknee to y-axis <-1.014038> speed <65.576523> / animSpeed; //delta=2.19 + turn rleg to x-axis <-37.965227> speed <1100.223999> / animSpeed; //delta=36.67 + turn rleg to z-axis <0.268919> speed <9.732160> / animSpeed; //delta=-0.32 + turn rleg to y-axis <1.402883> speed <64.831970> / animSpeed; //delta=2.16 + turn rthigh to x-axis <4.150117> speed <1239.310338> / animSpeed; //delta=41.31 + turn rthigh to z-axis <1.971503> speed <94.694776> / animSpeed; //delta=3.16 + turn rthigh to y-axis <-1.075169> speed <265.303288> / animSpeed; //delta=8.84 + turn ruparm to x-axis <6.549999> speed <196.499983> / animSpeed; //delta=6.55 + turn ruparm to z-axis <-3.000000> speed <89.999996> / animSpeed; //delta=-3.00 + turn ruparm to y-axis <-0.666667> speed <19.999998> / animSpeed; //delta=0.67 + turn torso to x-axis <6.000000> speed <180.000005> / animSpeed; //delta=6.00 + turn torso to z-axis <-2.500000> speed <74.999985> / animSpeed; //delta=2.50 + sleep ((33*animSpeed) -1); + } + if (bMoving) { //Frame:27 + turn backpack to x-axis <-0.000000> speed <157.499979> / animSpeed; //delta=-5.25 + turn head to y-axis <-1.600000> speed <76.499987> / animSpeed; //delta=-2.55 + turn lfoot to x-axis <-48.749789> speed <1485.487150> / animSpeed; //delta=49.52 + turn lfoot to z-axis <-9.326835> speed <126.370914> / animSpeed; //delta=-4.21 + turn lfoot to y-axis <-9.756001> speed <547.598020> / animSpeed; //delta=-18.25 + turn lknee to x-axis <-22.391484> speed <755.615604> / animSpeed; //delta=25.19 + turn lknee to z-axis <-0.696840> speed <211.155008> / animSpeed; //delta=7.04 + turn lknee to y-axis <-0.002053> speed <3.551670> / animSpeed; //delta=-0.12 + turn lleg to x-axis <41.783617> speed <1413.374328> / animSpeed; //delta=-47.11 + turn lleg to z-axis <-0.217073> speed <17.564989> / animSpeed; //delta=0.59 + turn lleg to y-axis <0.029312> speed <21.157926> / animSpeed; //delta=0.71 + turn lloarm to x-axis <13.124109> speed <311.870043> / animSpeed; //delta=-10.40 + turn lthigh to x-axis <36.836528> speed <1109.221657> / animSpeed; //delta=-36.97 + turn lthigh to z-axis <7.294113> speed <106.785594> / animSpeed; //delta=3.56 + turn lthigh to y-axis <-1.536293> speed <108.846420> / animSpeed; //delta=3.63 + turn luparm to x-axis <-3.464769> speed <239.497499> / animSpeed; //delta=7.98 + turn luparm to z-axis <-2.136699> speed <95.222891> / animSpeed; //delta=3.17 + turn luparm to y-axis <-0.672451> speed <92.964158> / animSpeed; //delta=-3.10 + move pelvis to y-axis [0.000000] speed [15.000000] / animSpeed; //delta=0.50 + turn pelvis to y-axis <2.000000> speed <44.999995> / animSpeed; //delta=1.50 + turn rfoot to x-axis <39.649098> speed <449.533032> / animSpeed; //delta=-14.98 + turn rknee to x-axis <-18.167178> speed <1345.894445> / animSpeed; //delta=44.86 + turn rknee to z-axis <-1.360705> speed <86.810169> / animSpeed; //delta=-2.89 + turn rknee to y-axis <-2.041137> speed <30.812969> / animSpeed; //delta=-1.03 + turn rleg to x-axis <-4.791348> speed <995.216375> / animSpeed; //delta=-33.17 + turn rleg to z-axis <0.150918> speed <3.540018> / animSpeed; //delta=0.12 + turn rleg to y-axis <-0.260551> speed <49.903006> / animSpeed; //delta=-1.66 + turn rthigh to x-axis <-39.367308> speed <1305.522763> / animSpeed; //delta=43.52 + turn rthigh to z-axis <5.921294> speed <118.493737> / animSpeed; //delta=-3.95 + turn rthigh to y-axis <3.266669> speed <130.255150> / animSpeed; //delta=4.34 + turn ruparm to x-axis <-0.000000> speed <196.499983> / animSpeed; //delta=6.55 + turn ruparm to z-axis <-0.000000> speed <89.999996> / animSpeed; //delta=-3.00 + turn ruparm to y-axis <0.000000> speed <19.999998> / animSpeed; //delta=0.67 + turn torso to x-axis <-0.000000> speed <180.000005> / animSpeed; //delta=6.00 + turn torso to z-axis <-4.999999> speed <74.999991> / animSpeed; //delta=2.50 + sleep ((33*animSpeed) -1); + } + } +} +// Call this from MotionControl()! +StopWalking() { + move pelvis to y-axis [0.000000] speed [10.000000]; + turn backpack to x-axis <0.000000> speed <52.499993>; + turn head to x-axis <0.000000> speed <109.999992>; + turn head to y-axis <0.000000> speed <25.499997>; + turn lfoot to x-axis <5.967320> speed <743.164777>; + turn lfoot to y-axis <-0.304286> speed <226.293665>; + turn lfoot to z-axis <-1.349672> speed <151.690795>; + turn lknee to x-axis <-0.798286> speed <502.093268>; + turn lknee to y-axis <0.564023> speed <189.085036>; + turn lknee to z-axis <-3.834793> speed <155.820085>; + turn lleg to x-axis <0.558221> speed <936.064709>; + turn lleg to y-axis <0.400933> speed <97.581417>; + turn lleg to z-axis <-0.289633> speed <66.878578>; + turn lloarm to x-axis <0.000000> speed <149.673487>; + turn lthigh to x-axis <-0.985280> speed <445.655282>; + turn lthigh to y-axis <3.249236> speed <109.185180>; + turn lthigh to z-axis <-6.927683> speed <142.217956>; + turn luparm to x-axis <0.000000> speed <123.364567>; + turn luparm to y-axis <0.000000> speed <55.689328>; + turn luparm to z-axis <0.000000> speed <97.703016>; + turn pelvis to y-axis <0.000000> speed <60.999993>; + turn rfoot to x-axis <6.319283> speed <759.123514>; + turn rfoot to y-axis <0.292394> speed <232.501057>; + turn rfoot to z-axis <2.608675> speed <156.243011>; + turn rknee to x-axis <-0.353739> speed <489.777822>; + turn rknee to y-axis <-0.709951> speed <277.926523>; + turn rknee to z-axis <4.454294> speed <257.060991>; + turn rleg to x-axis <-0.542500> speed <960.722230>; + turn rleg to y-axis <-1.085842> speed <88.115043>; + turn rleg to z-axis <0.576878> speed <50.261042>; + turn rthigh to x-axis <-1.102092> speed <435.174254>; + turn rthigh to y-axis <-3.646495> speed <266.221829>; + turn rthigh to z-axis <8.133466> speed <303.556932>; + turn ruparm to x-axis <31.199997> speed <311.999968>; + turn ruparm to y-axis <-18.799998> speed <187.999984>; + turn ruparm to z-axis <-4.999999> speed <49.999994>; + turn torso to x-axis <0.000000> speed <75.000002>; + turn torso to z-axis <0.000000> speed <49.999994>; +} +// REMEMBER TO animspeed = 3 in Create() !! +UnitSpeed(){ + maxSpeed = get MAX_SPEED; // this returns cob units per frame i think + animFramesPerKeyframe = 3; //we need to calc the frames per keyframe value, from the known animtime + maxSpeed = maxSpeed + (maxSpeed /(2*animFramesPerKeyframe)); // add fudge + while(TRUE){ + animSpeed = (get CURRENT_SPEED); + if (animSpeed<1) animSpeed=1; + animSpeed = (maxSpeed * 3) / animSpeed; + //get PRINT(maxSpeed, animFramesPerKeyframe, animSpeed); //how to print debug info from bos + if (animSpeed<1) animSpeed=1; + if (animspeed>6) animSpeed = 6; + sleep 98; + } +} + + +#define BASEPIECE pelvis +#define HITSPEED <55.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 3 +#define MAXTILT 100 + +#include "unit_hitbyweaponid_and_smoke.h" + +PilotLight(Func_Var_1) +{ + while( TRUE ) + { + emit-sfx 1024 + 0 from flare; + sleep 40; + } +} + +Create() +{ + hide flare; + hide aimx1; + hide aimy1; + hide flare; + bMoving = FALSE; + bAiming = FALSE; + currentSpeed = 200; + moveSpeed = get MAX_SPEED; + animSpeed = 3; + restore_delay = 1000; + start-script PilotLight(); +} + +SetMaxReloadTime(Func_Var_1) +{ + restore_delay = Func_Var_1 * 2; +} + +StartMoving() +{ + bMoving = TRUE; + signal SIG_WALK; + set-signal-mask SIG_WALK; + start-script UnitSpeed(); + start-script Walk(); +} + +StopMoving() +{ + bMoving = FALSE; + signal SIG_WALK; + start-script StopWalking(); +} + +SweetSpot(piecenum) +{ + piecenum = torso; +} + +static-var Stunned; +ExecuteRestoreAfterDelay() +{ + if (Stunned) { + return (1); + } + turn aimy1 to y-axis <0.000000> speed <90.000000>; + turn aimx1 to x-axis <0.000000> speed <45.000000>; + wait-for-turn aimy1 around y-axis; + wait-for-turn aimx1 around x-axis; + bAiming = FALSE; +} +SetStunned(State) +{ + Stunned = State; + if (!Stunned) { + start-script ExecuteRestoreAfterDelay(); + } +} +RestoreAfterDelay() +{ + set-signal-mask SIG_AIM; + sleep restore_delay; + start-script ExecuteRestoreAfterDelay(); +} + +AimFromPrimary(piecenum) +{ + piecenum = torso; +} + +QueryPrimary(piecenum) +{ + piecenum = flare; +} + +AimPrimary(heading, pitch) +{ + signal SIG_AIM; + bAiming = TRUE; + turn aimy1 to y-axis heading speed <275.000000>; + turn aimx1 to x-axis <0.000000> - pitch speed <110.000000>; + //wait-for-turn aimy1 around y-axis; + start-script RestoreAfterDelay(); + return (1); +} + +Shot1() +{ + call-script lua_FlameShot(1); + emit-sfx 1024 + 1 from flare; + return (TRUE); +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode pelvis type BITMAPONLY | NOHEATCLOUD; + explode rthigh type BITMAPONLY | NOHEATCLOUD; + //explode rleg type BITMAPONLY | NOHEATCLOUD; + //explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lthigh type BITMAPONLY | NOHEATCLOUD; + //explode lleg type BITMAPONLY | NOHEATCLOUD; + //explode lfoot type BITMAPONLY | NOHEATCLOUD; + explode torso type BITMAPONLY | NOHEATCLOUD; + //explode luparm type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode ruparm type BITMAPONLY | NOHEATCLOUD; + //explode flare type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode pelvis type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rthigh type FALL | NOHEATCLOUD; + //explode rleg type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lthigh type FALL | NOHEATCLOUD; + //explode lleg type FALL | NOHEATCLOUD; + //explode lfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode torso type FALL | NOHEATCLOUD; + //explode luparm type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode ruparm type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode flare type FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode pelvis type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rthigh type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rleg type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lthigh type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lleg type SMOKE | FALL | NOHEATCLOUD; + //explode lfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode torso type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode luparm type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode ruparm type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode flare type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode pelvis type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rthigh type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode rleg type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode rfoot type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode lthigh type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode lleg type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode lfoot type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode torso type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode luparm type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode ruparm type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode flare type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/corpyro.cob b/scripts/Units/corpyro.cob new file mode 100644 index 00000000000..4a16b073eee Binary files /dev/null and b/scripts/Units/corpyro.cob differ diff --git a/scripts/Units/corpyro_clean.bos b/scripts/Units/corpyro_clean.bos index fa2b249b015..e9676b99d79 100644 --- a/scripts/Units/corpyro_clean.bos +++ b/scripts/Units/corpyro_clean.bos @@ -17,6 +17,10 @@ lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) } +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations\corpyro_anim_walk.blend //set-signal-mask SIGNAL_MOVE; @@ -442,7 +446,7 @@ PilotLight() while( TRUE ) { emit-sfx 1024 + 0 from flare; - sleep 80; + sleep 40; } } @@ -533,6 +537,7 @@ AimWeapon1(heading, pitch) Shot1() { + call-script lua_FlameShot(1); emit-sfx 1024 + 1 from flare; return (TRUE); } diff --git a/scripts/Units/corpyro_clean.cob b/scripts/Units/corpyro_clean.cob index 1daf8b82937..db694ce20d0 100644 Binary files a/scripts/Units/corpyro_clean.cob and b/scripts/Units/corpyro_clean.cob differ diff --git a/scripts/Units/corshroud.bos b/scripts/Units/corshroud.bos index bb897bc0ee2..0728eb1a3d3 100644 --- a/scripts/Units/corshroud.bos +++ b/scripts/Units/corshroud.bos @@ -5,7 +5,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, tower, jam; +piece base, tower; static-var Static_Var_1, statechg_DesiredState, statechg_StateChanging; @@ -46,15 +46,13 @@ Go() set ACTIVATION to 0; return (0); } - show jam; - spin tower around y-axis speed <60> accelerate <1>; + spin tower around y-axis speed <40.005495>; return (0); } Stop() { - hide jam; - stop-spin tower around y-axis decelerate <4>; + stop-spin tower around y-axis; return (0); } diff --git a/scripts/Units/corshroud.cob b/scripts/Units/corshroud.cob index 2a1938d06d0..65413e688fa 100644 Binary files a/scripts/Units/corshroud.cob and b/scripts/Units/corshroud.cob differ diff --git a/scripts/Units/corsjam.bos b/scripts/Units/corsjam.bos index 7e88606599f..8307aaa9866 100644 --- a/scripts/Units/corsjam.bos +++ b/scripts/Units/corsjam.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, dish, wake, jam; +piece base, dish, wake; static-var Static_Var_1, oldHead; static-var recently_damaged, desired_activation; @@ -66,7 +66,6 @@ SmokeUnit(healthpercent, sleeptime, smoketype) Create() { hide wake; - hide jam; start-script SmokeUnit(); recently_damaged = 0; desired_activation = 1; @@ -78,7 +77,6 @@ Activate() signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; desired_activation = 1; - show jam; // if we are in this function, the unit is already on // implied set ACTIVATION to 1; // turn off if unit is in the recently_damaged state @@ -89,7 +87,7 @@ Activate() return(0); } - spin dish around z-axis speed <100.021978> accelerate <2>; + spin dish around z-axis speed <100.021978>; } Deactivate() @@ -111,8 +109,8 @@ Deactivate() } signal SIG_ACTIVATE; set-signal-mask SIG_ACTIVATE; - hide jam; - stop-spin dish around z-axis decelerate <2>; + + spin dish around z-axis speed <0.000000>; } static-var Stunned; @@ -130,7 +128,6 @@ OffOnHit() { signal SIG_OFF; set-signal-mask SIG_OFF; -hide jam; recently_damaged = 1; set ACTIVATION to 0; // turn off unit sleep 8000; //hardcoded time to stay off after being hit diff --git a/scripts/Units/corsjam.cob b/scripts/Units/corsjam.cob index 1dfbac1607b..f1bcf16ef17 100644 Binary files a/scripts/Units/corsjam.cob and b/scripts/Units/corsjam.cob differ diff --git a/scripts/Units/corspec_clean.bos b/scripts/Units/corspec_clean.bos index bbfcb1b2db7..f43cc1e8eac 100644 --- a/scripts/Units/corspec_clean.bos +++ b/scripts/Units/corspec_clean.bos @@ -1,7 +1,7 @@ #include "../recoil_common_includes.h" -piece pelvis, lleg, lfoot, rleg, rfoot, rthigh, lthigh, head, dish, rotator, jam; +piece pelvis, lleg, lfoot, rleg, rfoot, rthigh, lthigh,head,dish,rotator; static-var isMoving; @@ -271,7 +271,6 @@ Activate() signal SIGNAL_TURNON; set-signal-mask SIGNAL_TURNON; desired_activation = 1; - show jam; // if we are in this function, the unit is already on // implied set ACTIVATION to 1; // turn off if unit is in the recently_damaged state @@ -283,7 +282,7 @@ Activate() } call-script open(); - spin dish around x-axis speed <100.021978> accelerate <1>; + spin dish around x-axis speed <100.021978>; return (0); } @@ -307,10 +306,9 @@ Deactivate() signal SIGNAL_TURNON; set-signal-mask SIGNAL_TURNON; - stop-spin dish around x-axis decelerate <3>; - //wait-for-turn dish around x-axis; + turn dish to x-axis <0.0> speed <-100.0>; + wait-for-turn dish around x-axis; call-script close(); - hide jam; return (0); } diff --git a/scripts/Units/corspec_clean.cob b/scripts/Units/corspec_clean.cob index 4c0b0a3261d..5cff0b9cbd1 100644 Binary files a/scripts/Units/corspec_clean.cob and b/scripts/Units/corspec_clean.cob differ diff --git a/scripts/Units/corsumo.bos b/scripts/Units/corsumo.bos index bc618df8eab..74fc4f0a2ca 100644 --- a/scripts/Units/corsumo.bos +++ b/scripts/Units/corsumo.bos @@ -1,259 +1,441 @@ -#define TA // This is a TA script -#include "sfxtype.h" -#include "exptype.h" +#include "../recoil_common_includes.h" -piece rflare, lflare, torso, turret, Rbarrel, Lbarrel, rfleg, rffoot, lfleg, lffoot, rbleg, rbfoot, lbleg, lbfoot, aimy1; +piece lflare, rflare, torso, aimy, turret, aimx, sleeve, rbarrel, lbarrel, thighfl, thighfr, thighbl, thighbr, legfl, legfr, legbl, legbr, footfl, footfr, footbl, footbr, stompfl, stompfr, stompbl, stompbr; -static-var bMoving, bAiming, Static_Var_3, restore_delay, gun_1; +static-var isMoving, isAiming, restore_delay, gun_1, reload; // Signal definitions -#define SIG_AIM 4 +#define SIGNAL_AIM1 2 lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) { return 0; } - -// Generated for N:\animations\corsumo_anim_walk.blend -// Using https://github.com/Beherith/Skeletor_S3O // this animation uses the static-var animFramesPerKeyframe which contains how many frames each keyframe takes -// (c) CC BY NC ND Beherith mysterme@gmail.com -static-var animSpeed, maxSpeed, animFramesPerKeyframe; -#define SIG_WALK 2 -Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations\corsumo_anim_walk.blend - set-signal-mask SIG_WALK; - if (bMoving) { //Frame:6 - turn lbfoot to x-axis <-14.338065> speed <430.141938> / animSpeed; //delta=14.34 - move lbleg to y-axis [-2.334006] speed [70.020182] / animSpeed; //delta=-2.33 - turn lbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=-19.48 - turn lbleg to y-axis <-0.000000> speed <170.999984> / animSpeed; //delta=5.70 - turn lffoot to x-axis <-19.354488> speed <580.634655> / animSpeed; //delta=19.35 - move lfleg to y-axis [1.006599] speed [30.197968] / animSpeed; //delta=1.01 - turn lfleg to x-axis <21.784940> speed <653.548188> / animSpeed; //delta=-21.78 - turn lfleg to y-axis <-0.000000> speed <149.999983> / animSpeed; //delta=-5.00 - turn rbfoot to x-axis <19.443259> speed <583.297762> / animSpeed; //delta=-19.44 - move rbleg to y-axis [1.788061] speed [53.641845] / animSpeed; //delta=1.79 - turn rbleg to x-axis <-22.741834> speed <682.255012> / animSpeed; //delta=22.74 - turn rbleg to y-axis <0.000000> speed <167.999986> / animSpeed; //delta=-5.60 - turn rffoot to x-axis <25.808623> speed <774.258684> / animSpeed; //delta=-25.81 - move rfleg to y-axis [-4.251511] speed [127.545333] / animSpeed; //delta=-4.25 - turn rfleg to x-axis <-26.768777> speed <803.063299> / animSpeed; //delta=26.77 - turn rfleg to y-axis <-0.000000> speed <164.999988> / animSpeed; //delta=5.50 - move torso to y-axis [0.842832] speed [25.284952] / animSpeed; //delta=0.84 - turn turret to y-axis <-2.000000> speed <60.000000> / animSpeed; //delta=-2.00 +static-var animSpeed, maxSpeed, animFramesPerKeyframe, isMoving; +#define SIGNAL_MOVE 1 +Walk() {// For C:\Users\logst\Downloads\BAR\corsumo anim.blend Created by https://github.com/Beherith/Skeletor_S3O V((0, 4, 2)) + set-signal-mask SIGNAL_MOVE; + while(isMoving) { + if (isMoving) { //Frame:5 + turn footbl to x-axis <-12.052647> speed <370.551319> / animSpeed; + turn footbr to x-axis <-28.803987> speed <344.918338> / animSpeed; + turn footfl to x-axis <-1.174020> speed <86.844151> / animSpeed; + turn footfr to x-axis <-14.147619> speed <387.650071> / animSpeed; + turn legbl to x-axis <23.414005> speed <750.964873> / animSpeed; + turn legbr to x-axis <16.071618> speed <778.219716> / animSpeed; + turn legfl to x-axis <-21.047086> speed <514.471252> / animSpeed; + turn legfr to x-axis <17.257352> speed <519.927520> / animSpeed; + turn sleeve to x-axis <0.889225> speed <32.360001> / animSpeed; + turn thighbl to x-axis <-10.928236> speed <359.164072> / animSpeed; + turn thighbl to z-axis <0.473162> speed <14.710476> / animSpeed; + turn thighbl to y-axis <1.501613> speed <46.734132> / animSpeed; + move thighbr to y-axis [1.333333] speed [10.000001] / animSpeed; + turn thighbr to x-axis <4.648564> speed <454.103466> / animSpeed; + turn thighbr to z-axis <0.706117> speed <21.706920> / animSpeed; + turn thighbr to y-axis <0.660710> speed <21.584525> / animSpeed; + move thighfl to y-axis [1.666667] speed [10.000001] / animSpeed; + turn thighfl to x-axis <1.572309> speed <348.123123> / animSpeed; + turn thighfl to z-axis <0.223924> speed <7.079505> / animSpeed; + turn thighfl to y-axis <1.159094> speed <37.139196> / animSpeed; + turn thighfr to x-axis <-2.254021> speed <103.597351> / animSpeed; + turn thighfr to y-axis <1.218125> speed <38.091202> / animSpeed; + move torso to y-axis [0.017693] speed [13.074187] / animSpeed; + turn torso to x-axis <-1.041131> speed <26.637478> / animSpeed; + turn torso to z-axis <-0.346624> speed <10.881731> / animSpeed; + turn torso to y-axis <-1.039872> speed <32.645192> / animSpeed; + turn turret to y-axis <1.070515> speed <32.115446> / animSpeed; sleep ((33*animSpeed) -1); - } - while(bMoving) { - if (bMoving) { //Frame:12 - //call-script lua_UnitScriptDecal(1, (get PIECE_XZ(lbfoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lbfoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <-18.276130> speed <118.141953> / animSpeed; //delta=3.94 - move lbleg to y-axis [-3.471509] speed [34.125080] / animSpeed; //delta=-1.14 - turn lbleg to x-axis <38.963402> speed <584.451023> / animSpeed; //delta=-19.48 - turn lffoot to x-axis <4.325368> speed <710.395694> / animSpeed; //delta=-23.68 - move lfleg to y-axis [0.482331] speed [15.728052] / animSpeed; //delta=-0.52 - turn lfleg to x-axis <-3.120163> speed <747.153070> / animSpeed; //delta=24.91 - turn rbfoot to x-axis <44.038608> speed <737.860470> / animSpeed; //delta=-24.60 - move rbleg to y-axis [0.092369] speed [50.870780] / animSpeed; //delta=-1.70 - turn rbleg to x-axis <-45.483671> speed <682.255114> / animSpeed; //delta=22.74 - turn rffoot to x-axis <-0.000000> speed <774.258684> / animSpeed; //delta=25.81 - move rfleg to y-axis [-1.053504] speed [95.940206] / animSpeed; //delta=3.20 - turn rfleg to x-axis <-0.000000> speed <803.063299> / animSpeed; //delta=-26.77 - move torso to y-axis [1.000000] speed [4.715048] / animSpeed; //delta=0.16 - turn torso to x-axis <0.367080> speed <11.012392> / animSpeed; //delta=-0.37 - turn torso to z-axis <0.380266> speed <11.407970> / animSpeed; //delta=-0.38 - turn turret to y-axis <0.000000> speed <60.000000> / animSpeed; //delta=2.00 + } + if (isMoving) { //Frame:10 + turn footbl to x-axis <-16.173125> speed <123.614317> / animSpeed; + turn footbr to x-axis <-17.017394> speed <353.597783> / animSpeed; + turn footfl to x-axis <2.565172> speed <112.175743> / animSpeed; + turn footfr to x-axis <-30.307025> speed <484.782162> / animSpeed; + turn legbl to x-axis <45.705843> speed <668.755160> / animSpeed; + turn legbr to x-axis <-10.563217> speed <799.045048> / animSpeed; + turn legfl to x-axis <-40.816425> speed <593.080164> / animSpeed; + turn legfr to x-axis <32.646450> speed <461.672925> / animSpeed; + turn sleeve to x-axis <-0.270482> speed <34.791204> / animSpeed; + turn thighbl to x-axis <-21.701867> speed <323.208940> / animSpeed; + turn thighbl to z-axis <1.106804> speed <19.009266> / animSpeed; + turn thighbl to y-axis <2.965144> speed <43.905939> / animSpeed; + move thighbr to y-axis [1.666667] speed [10.000001] / animSpeed; + turn thighbr to x-axis <14.114676> speed <283.983347> / animSpeed; + turn thighbr to z-axis <1.491228> speed <23.553347> / animSpeed; + turn thighbr to y-axis <0.888097> speed <6.821630> / animSpeed; + move thighfl to y-axis [2.000000] speed [9.999998] / animSpeed; + turn thighfl to x-axis <14.714207> speed <394.256925> / animSpeed; + turn thighfl to z-axis <0.515647> speed <8.751667> / animSpeed; + turn thighfl to y-axis <1.676638> speed <15.526315> / animSpeed; + turn thighfr to x-axis <-1.596771> speed <19.717510> / animSpeed; + turn thighfr to y-axis <2.186636> speed <29.055317> / animSpeed; + move torso to y-axis [0.380259] speed [10.876977] / animSpeed; + turn torso to x-axis <-1.142297> speed <3.034983> / animSpeed; + turn torso to z-axis <-0.597129> speed <7.515148> / animSpeed; + turn torso to y-axis <-1.791387> speed <22.545442> / animSpeed; + turn turret to y-axis <1.845984> speed <23.264078> / animSpeed; + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:15 + turn footbl to x-axis <-11.940798> speed <126.969802> / animSpeed; + turn footbr to x-axis <0.343007> speed <520.812033> / animSpeed; + turn footfl to x-axis <8.154953> speed <167.693441> / animSpeed; + turn footfr to x-axis <-8.954988> speed <640.561112> / animSpeed; + turn legbl to x-axis <60.721276> speed <450.462997> / animSpeed; + turn legbr to x-axis <-25.572063> speed <450.265365> / animSpeed; + turn legfl to x-axis <-55.249858> speed <433.002984> / animSpeed; + turn legfr to x-axis <36.183224> speed <106.103232> / animSpeed; + turn sleeve to x-axis <-0.551936> speed <8.443631> / animSpeed; + turn thighbl to x-axis <-28.877893> speed <215.280767> / animSpeed; + turn thighbl to z-axis <1.673130> speed <16.989773> / animSpeed; + turn thighbl to y-axis <3.936699> speed <29.146641> / animSpeed; + move thighbr to y-axis [2.000000] speed [9.999998] / animSpeed; + turn thighbr to x-axis <13.646034> speed <14.059244> / animSpeed; + turn thighbr to y-axis <1.762697> speed <26.237992> / animSpeed; + move thighfl to y-axis [0.000000] speed [60.000000] / animSpeed; + turn thighfl to x-axis <28.570755> speed <415.696446> / animSpeed; + turn thighfl to z-axis <0.755675> speed <7.200845> / animSpeed; + move thighfr to y-axis [0.333333] speed [10.000000] / animSpeed; + turn thighfr to x-axis <-9.978234> speed <251.443903> / animSpeed; + turn thighfr to y-axis <2.804795> speed <18.544796> / animSpeed; + turn torso to x-axis <-0.871707> speed <8.117692> / animSpeed; + turn torso to y-axis <-2.076846> speed <8.563789> / animSpeed; + turn turret to y-axis <2.140144> speed <8.824782> / animSpeed; sleep ((33*animSpeed) -1); } - if (bMoving) { //Frame:18 - turn lbfoot to x-axis <-19.997443> speed <51.639406> / animSpeed; //delta=1.72 - move lbleg to y-axis [-1.013877] speed [73.728948] / animSpeed; //delta=2.46 - turn lbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=19.48 - turn lffoot to x-axis <7.569844> speed <97.334281> / animSpeed; //delta=-3.24 - move lfleg to y-axis [-1.739398] speed [66.651871] / animSpeed; //delta=-2.22 - turn lfleg to x-axis <-20.244433> speed <513.728111> / animSpeed; //delta=17.12 - turn rbfoot to x-axis <18.619304> speed <762.579112> / animSpeed; //delta=25.42 - move rbleg to y-axis [0.400301] speed [9.237975] / animSpeed; //delta=0.31 - turn rbleg to x-axis <-19.297236> speed <785.593042> / animSpeed; //delta=-26.19 - turn rffoot to x-axis <-23.512202> speed <705.366067> / animSpeed; //delta=23.51 - move rfleg to y-axis [0.933998] speed [59.625063] / animSpeed; //delta=1.99 - turn rfleg to x-axis <24.115777> speed <723.473325> / animSpeed; //delta=-24.12 - move torso to y-axis [0.856374] speed [4.308779] / animSpeed; //delta=-0.14 - turn torso to x-axis <-0.000000> speed <11.012392> / animSpeed; //delta=0.37 - turn torso to z-axis <0.630797> speed <7.515927> / animSpeed; //delta=-0.25 - turn turret to y-axis <2.000000> speed <60.000000> / animSpeed; //delta=2.00 + if (isMoving) { //Frame:20 + emit-sfx 1024 + 0 from footfl; + turn footbl to x-axis <11.369138> speed <699.298092> / animSpeed; + turn footbr to x-axis <31.101844> speed <922.765097> / animSpeed; + turn footfl to x-axis <22.842716> speed <440.632878> / animSpeed; + turn footfr to x-axis <-8.540977> speed <12.420306> / animSpeed; + turn legbl to x-axis <58.960795> speed <52.814438> / animSpeed; + turn legbr to x-axis <-37.847663> speed <368.268005> / animSpeed; + turn legfl to x-axis <-48.317260> speed <207.977928> / animSpeed; + turn legfr to x-axis <31.462546> speed <141.620352> / animSpeed; + turn sleeve to x-axis <0.207786> speed <22.791666> / animSpeed; + move thighbl to y-axis [0.333333] speed [10.000000] / animSpeed; + turn thighbl to x-axis <-27.562293> speed <39.468009> / animSpeed; + turn thighbl to z-axis <0.981226> speed <20.757102> / animSpeed; + turn thighbl to y-axis <2.804431> speed <33.968033> / animSpeed; + move thighbr to y-axis [0.000000] speed [60.000000] / animSpeed; + turn thighbr to x-axis <4.672676> speed <269.200747> / animSpeed; + turn thighbr to z-axis <1.075078> speed <11.230589> / animSpeed; + turn thighfl to x-axis <22.946058> speed <168.740899> / animSpeed; + turn thighfl to z-axis <0.554345> speed <6.039909> / animSpeed; + move thighfr to y-axis [0.666667] speed [10.000000] / animSpeed; + turn thighfr to x-axis <-18.583845> speed <258.168318> / animSpeed; + turn thighfr to z-axis <0.288311> speed <8.699781> / animSpeed; + turn thighfr to y-axis <3.251317> speed <13.395638> / animSpeed; + move torso to y-axis [-0.027278] speed [11.724695] / animSpeed; + turn torso to x-axis <1.904419> speed <83.283782> / animSpeed; + turn torso to y-axis <-1.822728> speed <7.623548> / animSpeed; + turn turret to y-axis <1.878280> speed <7.855891> / animSpeed; sleep ((33*animSpeed) -1); } - if (bMoving) { //Frame:24 - call-script lua_UnitScriptDecal(1, (get PIECE_XZ(rffoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rffoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <-3.752093> speed <487.360515> / animSpeed; //delta=-16.25 - move lbleg to y-axis [1.443754] speed [73.728940] / animSpeed; //delta=2.46 - turn lbleg to x-axis <-0.000000> speed <584.451023> / animSpeed; //delta=19.48 - turn lffoot to x-axis <1.115736> speed <193.623236> / animSpeed; //delta=6.45 - move lfleg to y-axis [-3.314694] speed [47.258878] / animSpeed; //delta=-1.58 - turn lfleg to x-axis <-25.309881> speed <151.963427> / animSpeed; //delta=5.07 - turn rbfoot to x-axis <-0.000000> speed <558.579120> / animSpeed; //delta=18.62 - move rbleg to y-axis [-1.196503] speed [47.904142] / animSpeed; //delta=-1.60 - turn rbleg to x-axis <-0.000000> speed <578.917084> / animSpeed; //delta=-19.30 - turn rffoot to x-axis <-42.724404> speed <576.366060> / animSpeed; //delta=19.21 - move rfleg to y-axis [0.319000] speed [18.449937] / animSpeed; //delta=-0.61 - turn rfleg to x-axis <44.531556> speed <612.473359> / animSpeed; //delta=-20.42 - move torso to y-axis [1.000000] speed [4.308779] / animSpeed; //delta=0.14 - turn torso to x-axis <-0.341367> speed <10.241022> / animSpeed; //delta=0.34 - turn torso to z-axis <0.459381> speed <5.142475> / animSpeed; //delta=0.17 - turn turret to y-axis <3.000000> speed <30.000003> / animSpeed; //delta=1.00 + if (isMoving) { //Frame:25 + emit-sfx 1024 + 0 from footbr; + turn footbl to x-axis <-0.755344> speed <363.734480> / animSpeed; + turn footbr to x-axis <13.427968> speed <530.216256> / animSpeed; + turn footfl to x-axis <10.562421> speed <368.408852> / animSpeed; + turn footfr to x-axis <-6.467911> speed <62.191984> / animSpeed; + turn legbl to x-axis <52.133956> speed <204.805169> / animSpeed; + turn legbr to x-axis <-22.703025> speed <454.339146> / animSpeed; + turn legfl to x-axis <-21.536409> speed <803.425522> / animSpeed; + turn legfr to x-axis <13.997852> speed <523.940814> / animSpeed; + turn sleeve to x-axis <1.435335> speed <36.826482> / animSpeed; + move thighbl to y-axis [0.666667] speed [10.000000] / animSpeed; + turn thighbl to x-axis <-20.749695> speed <204.377941> / animSpeed; + turn thighbl to z-axis <0.345821> speed <19.062156> / animSpeed; + turn thighbl to y-axis <1.291680> speed <45.382535> / animSpeed; + turn thighbr to x-axis <7.293338> speed <78.619874> / animSpeed; + turn thighbr to z-axis <0.510682> speed <16.931865> / animSpeed; + turn thighbr to y-axis <1.042326> speed <21.658411> / animSpeed; + turn thighfl to x-axis <9.301435> speed <409.338684> / animSpeed; + turn thighfl to z-axis <0.236599> speed <9.532356> / animSpeed; + turn thighfl to y-axis <0.996498> speed <17.108401> / animSpeed; + move thighfr to y-axis [1.000000] speed [9.999999] / animSpeed; + turn thighfr to x-axis <-15.783309> speed <84.016091> / animSpeed; + turn thighfr to z-axis <0.107113> speed <5.435950> / animSpeed; + turn thighfr to y-axis <1.731685> speed <45.588961> / animSpeed; + move torso to y-axis [-0.389369] speed [10.862743] / animSpeed; + turn torso to x-axis <1.253547> speed <19.526160> / animSpeed; + turn torso to z-axis <-0.342641> speed <7.948041> / animSpeed; + turn torso to y-axis <-1.027925> speed <23.844105> / animSpeed; + turn turret to y-axis <1.059253> speed <24.570813> / animSpeed; sleep ((33*animSpeed) -1); } - if (bMoving) { //Frame:30 - turn lbfoot to x-axis <19.443259> speed <695.860543> / animSpeed; //delta=-23.20 - move lbleg to y-axis [1.788061] speed [10.329219] / animSpeed; //delta=0.34 - turn lbleg to x-axis <-22.741834> speed <682.255012> / animSpeed; //delta=22.74 - turn lffoot to x-axis <25.808623> speed <740.786599> / animSpeed; //delta=-24.69 - move lfleg to y-axis [-4.251511] speed [28.104501] / animSpeed; //delta=-0.94 - turn lfleg to x-axis <-26.768777> speed <43.766879> / animSpeed; //delta=1.46 - turn rbfoot to x-axis <-14.338065> speed <430.141938> / animSpeed; //delta=14.34 - move rbleg to y-axis [-2.334006] speed [34.125080] / animSpeed; //delta=-1.14 - turn rbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=-19.48 - turn rffoot to x-axis <-19.354488> speed <701.097472> / animSpeed; //delta=-23.37 - move rfleg to y-axis [1.006599] speed [20.627969] / animSpeed; //delta=0.69 - turn rfleg to x-axis <21.784940> speed <682.398497> / animSpeed; //delta=22.75 - move torso to y-axis [0.870629] speed [3.881131] / animSpeed; //delta=-0.13 - turn torso to x-axis <-0.000000> speed <10.241022> / animSpeed; //delta=-0.34 - turn torso to z-axis <-0.000000> speed <13.781423> / animSpeed; //delta=0.46 - turn turret to y-axis <2.000000> speed <30.000003> / animSpeed; //delta=-1.00 + if (isMoving) { //Frame:30 + turn footbl to x-axis <-17.306709> speed <496.540943> / animSpeed; + turn footbr to x-axis <0.299063> speed <393.867155> / animSpeed; + turn footfl to x-axis <-1.225950> speed <353.651123> / animSpeed; + turn footfr to x-axis <-4.068825> speed <71.972593> / animSpeed; + turn legbl to x-axis <42.012275> speed <303.650437> / animSpeed; + turn legbr to x-axis <-1.618158> speed <632.546003> / animSpeed; + turn legfl to x-axis <-0.073565> speed <643.885335> / animSpeed; + turn legfr to x-axis <-3.898044> speed <536.876894> / animSpeed; + turn sleeve to x-axis <1.640754> speed <6.162577> / animSpeed; + move thighbl to y-axis [1.000000] speed [9.999999] / animSpeed; + turn thighbl to x-axis <-10.488218> speed <307.844293> / animSpeed; + turn thighbl to z-axis <-0.019734> speed <10.966655> / animSpeed; + turn thighbl to y-axis <0.017538> speed <38.224265> / animSpeed; + turn thighbr to x-axis <0.614101> speed <200.377132> / animSpeed; + turn thighbr to z-axis <-0.000728> speed <15.342317> / animSpeed; + turn thighbr to y-axis <-0.074908> speed <33.517031> / animSpeed; + turn thighfl to x-axis <1.091192> speed <246.307302> / animSpeed; + turn thighfl to z-axis <0.004241> speed <6.970745> / animSpeed; + turn thighfl to y-axis <-0.039096> speed <31.067817> / animSpeed; + move thighfr to y-axis [1.333333] speed [10.000001] / animSpeed; + turn thighfr to x-axis <-10.031795> speed <172.545408> / animSpeed; + turn thighfr to y-axis <0.038343> speed <50.800260> / animSpeed; + turn torso to x-axis <-0.123727> speed <41.318204> / animSpeed; + turn torso to z-axis <0.005787> speed <10.452867> / animSpeed; + turn torso to y-axis <0.017362> speed <31.358608> / animSpeed; + turn turret to y-axis <-0.017891> speed <32.314343> / animSpeed; sleep ((33*animSpeed) -1); } - if (bMoving) { //Frame:36 - //call-script lua_UnitScriptDecal(1, (get PIECE_XZ(rbfoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rbfoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <44.038608> speed <737.860470> / animSpeed; //delta=-24.60 - move lbleg to y-axis [0.092369] speed [50.870780] / animSpeed; //delta=-1.70 - turn lbleg to x-axis <-45.483671> speed <682.255114> / animSpeed; //delta=22.74 - turn lffoot to x-axis <-0.000000> speed <774.258684> / animSpeed; //delta=25.81 - move lfleg to y-axis [-1.141006] speed [93.315160] / animSpeed; //delta=3.11 - turn lfleg to x-axis <-0.900000> speed <776.063301> / animSpeed; //delta=-25.87 - turn rbfoot to x-axis <-18.276130> speed <118.141953> / animSpeed; //delta=3.94 - move rbleg to y-axis [-3.471509] speed [34.125080] / animSpeed; //delta=-1.14 - turn rbleg to x-axis <38.963402> speed <584.451023> / animSpeed; //delta=-19.48 - turn rffoot to x-axis <4.325368> speed <710.395694> / animSpeed; //delta=-23.68 - move rfleg to y-axis [0.482331] speed [15.728052] / animSpeed; //delta=-0.52 - turn rfleg to x-axis <-3.120163> speed <747.153070> / animSpeed; //delta=24.91 - move torso to y-axis [1.065929] speed [5.859007] / animSpeed; //delta=0.20 - turn torso to x-axis <0.463336> speed <13.900090> / animSpeed; //delta=-0.46 - turn torso to z-axis <-0.426746> speed <12.802373> / animSpeed; //delta=0.43 - turn turret to y-axis <0.000000> speed <60.000000> / animSpeed; //delta=-2.00 + if (isMoving) { //Frame:35 + turn footbl to x-axis <-28.803987> speed <344.918338> / animSpeed; + turn footbr to x-axis <-11.482274> speed <353.440107> / animSpeed; + turn footfl to x-axis <-14.147619> speed <387.650071> / animSpeed; + turn footfr to x-axis <-1.174020> speed <86.844151> / animSpeed; + turn legbl to x-axis <16.071618> speed <778.219716> / animSpeed; + turn legbr to x-axis <23.414005> speed <750.964873> / animSpeed; + turn legfl to x-axis <17.257352> speed <519.927520> / animSpeed; + turn legfr to x-axis <-21.047086> speed <514.471252> / animSpeed; + turn sleeve to x-axis <0.881770> speed <22.769532> / animSpeed; + move thighbl to y-axis [1.333333] speed [10.000001] / animSpeed; + turn thighbl to x-axis <4.648564> speed <454.103466> / animSpeed; + turn thighbl to z-axis <-0.450801> speed <12.932010> / animSpeed; + turn thighbl to y-axis <-1.025077> speed <31.278440> / animSpeed; + turn thighbr to x-axis <-11.358039> speed <359.164174> / animSpeed; + turn thighbr to z-axis <-0.490814> speed <14.702554> / animSpeed; + turn thighbr to y-axis <-1.492224> speed <42.519485> / animSpeed; + turn thighfl to x-axis <-2.894266> speed <119.563742> / animSpeed; + turn thighfl to z-axis <-0.185148> speed <5.681684> / animSpeed; + turn thighfl to y-axis <-1.193982> speed <34.646567> / animSpeed; + move thighfr to y-axis [1.666667] speed [9.999998] / animSpeed; + turn thighfr to x-axis <1.572309> speed <348.123123> / animSpeed; + turn thighfr to y-axis <-1.255258> speed <38.808017> / animSpeed; + move torso to y-axis [0.033411] speed [11.655625] / animSpeed; + turn torso to x-axis <-0.916627> speed <23.787007> / animSpeed; + turn torso to z-axis <0.352708> speed <10.407603> / animSpeed; + turn torso to y-axis <1.058123> speed <31.222810> / animSpeed; + turn turret to y-axis <-1.090371> speed <32.174400> / animSpeed; sleep ((33*animSpeed) -1); } - if (bMoving) { //Frame:42 - turn lbfoot to x-axis <18.619304> speed <762.579112> / animSpeed; //delta=25.42 - move lbleg to y-axis [0.400301] speed [9.237975] / animSpeed; //delta=0.31 - turn lbleg to x-axis <-19.297236> speed <785.593042> / animSpeed; //delta=-26.19 - turn lffoot to x-axis <-23.512202> speed <705.366067> / animSpeed; //delta=23.51 - move lfleg to y-axis [0.933998] speed [62.250109] / animSpeed; //delta=2.08 - turn lfleg to x-axis <24.115777> speed <750.473323> / animSpeed; //delta=-25.02 - turn rbfoot to x-axis <-19.997443> speed <51.639406> / animSpeed; //delta=1.72 - move rbleg to y-axis [-1.013877] speed [73.728948] / animSpeed; //delta=2.46 - turn rbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=19.48 - turn rffoot to x-axis <7.569844> speed <97.334281> / animSpeed; //delta=-3.24 - move rfleg to y-axis [-1.739398] speed [66.651871] / animSpeed; //delta=-2.22 - turn rfleg to x-axis <-20.244433> speed <513.728111> / animSpeed; //delta=17.12 - move torso to y-axis [0.884884] speed [5.431355] / animSpeed; //delta=-0.18 - turn torso to x-axis <-0.000000> speed <13.900090> / animSpeed; //delta=0.46 - turn torso to z-axis <-0.646290> speed <6.586326> / animSpeed; //delta=0.22 - turn turret to y-axis <-2.000000> speed <60.000000> / animSpeed; //delta=-2.00 + if (isMoving) { //Frame:40 + turn footbl to x-axis <-17.017394> speed <353.597783> / animSpeed; + turn footbr to x-axis <-16.173125> speed <140.725529> / animSpeed; + turn footfl to x-axis <-30.307025> speed <484.782162> / animSpeed; + turn footfr to x-axis <2.565172> speed <112.175743> / animSpeed; + turn legbl to x-axis <-10.563217> speed <799.045048> / animSpeed; + turn legbr to x-axis <45.705843> speed <668.755160> / animSpeed; + turn legfl to x-axis <32.646450> speed <461.672925> / animSpeed; + turn legfr to x-axis <-40.816425> speed <593.080164> / animSpeed; + turn sleeve to x-axis <-0.284504> speed <34.988208> / animSpeed; + move thighbl to y-axis [1.666667] speed [9.999998] / animSpeed; + turn thighbl to x-axis <14.114676> speed <283.983347> / animSpeed; + turn thighbl to z-axis <-0.975089> speed <15.728640> / animSpeed; + turn thighbl to y-axis <-2.026279> speed <30.036066> / animSpeed; + turn thighbr to x-axis <-22.131667> speed <323.208863> / animSpeed; + turn thighbr to z-axis <-1.120701> speed <18.896638> / animSpeed; + turn thighbr to y-axis <-2.971975> speed <44.392507> / animSpeed; + turn thighfl to x-axis <-1.936115> speed <28.744527> / animSpeed; + turn thighfl to z-axis <-0.360607> speed <5.263761> / animSpeed; + turn thighfl to y-axis <-2.137777> speed <28.313879> / animSpeed; + move thighfr to y-axis [2.000000] speed [10.000001] / animSpeed; + turn thighfr to x-axis <14.714207> speed <394.256925> / animSpeed; + turn thighfr to y-axis <-1.935303> speed <20.401350> / animSpeed; + move torso to y-axis [0.419958] speed [11.596414] / animSpeed; + turn torso to x-axis <-1.112263> speed <5.869072> / animSpeed; + turn torso to z-axis <0.613465> speed <7.822717> / animSpeed; + turn torso to y-axis <1.840394> speed <23.468145> / animSpeed; + turn turret to y-axis <-1.896485> speed <24.183410> / animSpeed; sleep ((33*animSpeed) -1); } - if (bMoving) { //Frame:48 - call-script lua_UnitScriptDecal(1, (get PIECE_XZ(lffoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lffoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <-0.000000> speed <558.579120> / animSpeed; //delta=18.62 - move lbleg to y-axis [-1.196503] speed [47.904142] / animSpeed; //delta=-1.60 - turn lbleg to x-axis <-0.000000> speed <578.917084> / animSpeed; //delta=-19.30 - turn lffoot to x-axis <-42.724404> speed <576.366060> / animSpeed; //delta=19.21 - move lfleg to y-axis [0.319000] speed [18.449937] / animSpeed; //delta=-0.61 - turn lfleg to x-axis <44.531556> speed <612.473359> / animSpeed; //delta=-20.42 - turn rbfoot to x-axis <-3.752093> speed <487.360515> / animSpeed; //delta=-16.25 - move rbleg to y-axis [1.443754] speed [73.728940] / animSpeed; //delta=2.46 - turn rbleg to x-axis <-0.000000> speed <584.451023> / animSpeed; //delta=19.48 - turn rffoot to x-axis <1.115736> speed <193.623236> / animSpeed; //delta=6.45 - move rfleg to y-axis [-3.314694] speed [47.258878] / animSpeed; //delta=-1.58 - turn rfleg to x-axis <-25.309881> speed <151.963427> / animSpeed; //delta=5.07 - move torso to y-axis [1.000000] speed [3.453480] / animSpeed; //delta=0.12 - turn torso to x-axis <-0.402352> speed <12.070557> / animSpeed; //delta=0.40 - turn torso to z-axis <-0.451140> speed <5.854509> / animSpeed; //delta=-0.20 - turn turret to y-axis <-3.000000> speed <30.000003> / animSpeed; //delta=-1.00 + if (isMoving) { //Frame:45 + turn footbl to x-axis <0.343007> speed <520.812033> / animSpeed; + turn footbr to x-axis <-11.940798> speed <126.969802> / animSpeed; + turn footfl to x-axis <-8.954988> speed <640.561112> / animSpeed; + turn footfr to x-axis <8.154953> speed <167.693441> / animSpeed; + turn legbl to x-axis <-25.572063> speed <450.265365> / animSpeed; + turn legbr to x-axis <60.721276> speed <450.462997> / animSpeed; + turn legfl to x-axis <36.183224> speed <106.103232> / animSpeed; + turn legfr to x-axis <-55.249858> speed <433.002984> / animSpeed; + turn sleeve to x-axis <-0.547197> speed <7.880791> / animSpeed; + move thighbl to y-axis [2.000000] speed [10.000001] / animSpeed; + turn thighbl to x-axis <13.646034> speed <14.059244> / animSpeed; + turn thighbl to z-axis <-1.242200> speed <8.013333> / animSpeed; + turn thighbl to y-axis <-2.987030> speed <28.822513> / animSpeed; + turn thighbr to x-axis <-28.734626> speed <198.088771> / animSpeed; + turn thighbr to z-axis <-1.555798> speed <13.052895> / animSpeed; + turn thighbr to y-axis <-3.740505> speed <23.055910> / animSpeed; + move thighfl to y-axis [0.333333] speed [10.000000] / animSpeed; + turn thighfl to x-axis <-9.978234> speed <241.263575> / animSpeed; + turn thighfl to y-axis <-2.604156> speed <13.991369> / animSpeed; + move thighfr to y-axis [0.000000] speed [60.000000] / animSpeed; + turn thighfr to x-axis <28.570753> speed <415.696395> / animSpeed; + turn torso to x-axis <-0.813154> speed <8.973258> / animSpeed; + turn torso to y-axis <2.076741> speed <7.090396> / animSpeed; + turn turret to y-axis <-2.140034> speed <7.306469> / animSpeed; sleep ((33*animSpeed) -1); } - if (bMoving) { //Frame:54 - turn lbfoot to x-axis <-14.338065> speed <430.141938> / animSpeed; //delta=14.34 - move lbleg to y-axis [-2.334006] speed [34.125080] / animSpeed; //delta=-1.14 - turn lbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=-19.48 - turn lffoot to x-axis <-19.354488> speed <701.097472> / animSpeed; //delta=-23.37 - move lfleg to y-axis [1.006599] speed [20.627969] / animSpeed; //delta=0.69 - turn lfleg to x-axis <21.784940> speed <682.398497> / animSpeed; //delta=22.75 - turn rbfoot to x-axis <19.443259> speed <695.860543> / animSpeed; //delta=-23.20 - move rbleg to y-axis [1.788061] speed [10.329219] / animSpeed; //delta=0.34 - turn rbleg to x-axis <-22.741834> speed <682.255012> / animSpeed; //delta=22.74 - turn rffoot to x-axis <25.808623> speed <740.786599> / animSpeed; //delta=-24.69 - move rfleg to y-axis [-4.251511] speed [28.104501] / animSpeed; //delta=-0.94 - turn rfleg to x-axis <-26.768777> speed <43.766879> / animSpeed; //delta=1.46 - move torso to y-axis [0.899139] speed [3.025836] / animSpeed; //delta=-0.10 - turn torso to x-axis <-0.000000> speed <12.070557> / animSpeed; //delta=-0.40 - turn torso to z-axis <-0.000000> speed <13.534190> / animSpeed; //delta=-0.45 - turn turret to y-axis <-2.000000> speed <30.000003> / animSpeed; //delta=1.00 + if (isMoving) { //Frame:50 + emit-sfx 1024 + 0 from footfr; + turn footbl to x-axis <31.101844> speed <922.765097> / animSpeed; + turn footbr to x-axis <11.369138> speed <699.298092> / animSpeed; + turn footfl to x-axis <-8.540977> speed <12.420306> / animSpeed; + turn footfr to x-axis <23.131373> speed <449.292601> / animSpeed; + turn legbl to x-axis <-37.847663> speed <368.268005> / animSpeed; + turn legbr to x-axis <58.960795> speed <52.814438> / animSpeed; + turn legfl to x-axis <31.462546> speed <141.620352> / animSpeed; + turn legfr to x-axis <-48.317260> speed <207.977928> / animSpeed; + turn sleeve to x-axis <0.226900> speed <23.222897> / animSpeed; + move thighbl to y-axis [0.000000] speed [60.000000] / animSpeed; + turn thighbl to x-axis <4.815944> speed <264.902697> / animSpeed; + turn thighbl to z-axis <-0.880031> speed <10.865071> / animSpeed; + turn thighbl to y-axis <-2.343272> speed <19.312725> / animSpeed; + move thighbr to y-axis [0.333333] speed [10.000000] / animSpeed; + turn thighbr to x-axis <-27.562294> speed <35.169959> / animSpeed; + turn thighbr to z-axis <-1.047518> speed <15.248386> / animSpeed; + turn thighbr to y-axis <-2.773561> speed <29.008324> / animSpeed; + move thighfl to y-axis [0.666667] speed [10.000000] / animSpeed; + turn thighfl to x-axis <-18.583845> speed <258.168318> / animSpeed; + turn thighfr to x-axis <22.777976> speed <173.783321> / animSpeed; + turn thighfr to y-axis <-1.723166> speed <4.792151> / animSpeed; + move torso to y-axis [-0.032065] speed [11.886868] / animSpeed; + turn torso to x-axis <1.904459> speed <81.528395> / animSpeed; + turn torso to z-axis <0.591285> speed <3.028844> / animSpeed; + turn torso to y-axis <1.773856> speed <9.086536> / animSpeed; + turn turret to y-axis <-1.827919> speed <9.363447> / animSpeed; + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:55 + emit-sfx 1024 + 0 from footbl; + turn footbl to x-axis <13.427968> speed <530.216256> / animSpeed; + turn footbr to x-axis <-0.755344> speed <363.734480> / animSpeed; + turn footfl to x-axis <-6.467911> speed <62.191984> / animSpeed; + turn footfr to x-axis <10.562421> speed <377.068576> / animSpeed; + turn legbl to x-axis <-22.703025> speed <454.339146> / animSpeed; + turn legbr to x-axis <52.133956> speed <204.805169> / animSpeed; + turn legfl to x-axis <13.997852> speed <523.940814> / animSpeed; + turn legfr to x-axis <-21.536409> speed <803.425522> / animSpeed; + turn sleeve to x-axis <1.361338> speed <34.033128> / animSpeed; + turn thighbl to x-axis <7.579872> speed <82.917822> / animSpeed; + turn thighbl to z-axis <-0.392101> speed <14.637918> / animSpeed; + turn thighbl to y-axis <-1.233086> speed <33.305593> / animSpeed; + move thighbr to y-axis [0.666667] speed [10.000000] / animSpeed; + turn thighbr to x-axis <-20.749695> speed <204.377992> / animSpeed; + turn thighbr to z-axis <-0.415962> speed <18.946696> / animSpeed; + turn thighbr to y-axis <-1.256893> speed <45.500029> / animSpeed; + move thighfl to y-axis [1.000000] speed [9.999999] / animSpeed; + turn thighfl to x-axis <-15.783309> speed <84.016091> / animSpeed; + turn thighfl to z-axis <-0.252081> speed <5.160965> / animSpeed; + turn thighfl to y-axis <-1.581305> speed <31.695345> / animSpeed; + turn thighfr to x-axis <9.603926> speed <395.221503> / animSpeed; + turn thighfr to y-axis <-1.069185> speed <19.619433> / animSpeed; + move torso to y-axis [-0.396711] speed [10.939364] / animSpeed; + turn torso to x-axis <1.197268> speed <21.215725> / animSpeed; + turn torso to z-axis <0.336495> speed <7.643720> / animSpeed; + turn torso to y-axis <1.009484> speed <22.931154> / animSpeed; + turn turret to y-axis <-1.039205> speed <23.661432> / animSpeed; + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:60 + turn footbl to x-axis <0.299063> speed <393.867155> / animSpeed; + turn footbr to x-axis <-17.306709> speed <496.540943> / animSpeed; + turn footfl to x-axis <-4.068825> speed <71.972593> / animSpeed; + turn footfr to x-axis <-1.225950> speed <353.651123> / animSpeed; + turn legbl to x-axis <-1.618158> speed <632.546003> / animSpeed; + turn legbr to x-axis <42.012275> speed <303.650437> / animSpeed; + turn legfl to x-axis <-3.898044> speed <536.876894> / animSpeed; + turn legfr to x-axis <-0.073565> speed <643.885335> / animSpeed; + turn sleeve to x-axis <1.956161> speed <17.844691> / animSpeed; + turn thighbl to x-axis <1.043900> speed <196.079158> / animSpeed; + turn thighbl to z-axis <-0.017188> speed <11.247392> / animSpeed; + turn thighbl to y-axis <-0.056192> speed <35.306822> / animSpeed; + move thighbr to y-axis [1.000000] speed [9.999999] / animSpeed; + turn thighbr to x-axis <-10.488218> speed <307.844293> / animSpeed; + turn thighbr to z-axis <-0.017447> speed <11.955439> / animSpeed; + turn thighbr to y-axis <-0.058775> speed <35.943557> / animSpeed; + move thighfl to y-axis [1.333333] speed [10.000001] / animSpeed; + turn thighfl to x-axis <-10.031795> speed <172.545408> / animSpeed; + turn thighfl to z-axis <-0.012059> speed <7.200667> / animSpeed; + turn thighfl to y-axis <-0.078879> speed <45.072761> / animSpeed; + turn thighfr to x-axis <1.199224> speed <252.141056> / animSpeed; + turn thighfr to y-axis <-0.051582> speed <30.528084> / animSpeed; + turn torso to x-axis <-0.153215> speed <40.514498> / animSpeed; + turn torso to z-axis <0.016100> speed <9.611832> / animSpeed; + turn torso to y-axis <0.048301> speed <28.835498> / animSpeed; + turn turret to y-axis <0.036585> speed <32.273698> / animSpeed; sleep ((33*animSpeed) -1); } } } -// Call this from MotionControl()! +// Call this from StopMoving()! StopWalking() { - move lbleg to y-axis [0.000000] speed [12.288158]; - move lfleg to y-axis [0.000000] speed [15.552527]; - move rbleg to y-axis [0.000000] speed [12.288158]; - move rfleg to y-axis [0.000000] speed [21.257555]; - move torso to y-axis [0.000000] speed [2.500000]; - turn lbfoot to x-axis <0.000000> speed <127.096519>; - turn lbleg to x-axis <0.000000> speed <130.932174>; - turn lbleg to y-axis <-5.699999> speed <28.499997>; - turn lffoot to x-axis <0.000000> speed <194.749310>; - turn lfleg to x-axis <0.000000> speed <189.555149>; - turn lfleg to y-axis <4.999999> speed <24.999997>; - turn rbfoot to x-axis <0.000000> speed <127.096519>; - turn rbleg to x-axis <0.000000> speed <130.932174>; - turn rbleg to y-axis <5.600000> speed <27.999998>; - turn rffoot to x-axis <0.000000> speed <194.749310>; - turn rfleg to x-axis <0.000000> speed <189.555149>; - turn rfleg to y-axis <-5.500000> speed <27.499998>; - turn torso to x-axis <0.000000> speed <5.000000>; - turn torso to z-axis <0.000000> speed <5.000000>; - turn turret to x-axis <0.000000> speed <10.550000>; - turn turret to y-axis <0.000000> speed <10.000000>; + animSpeed = 10; // tune restore speed here, higher values are slower restore speeds + move thighbl to y-axis [0] speed [120.000000] / animSpeed; + move thighbr to y-axis [0] speed [120.000000] / animSpeed; + move thighfl to y-axis [0] speed [120.000000] / animSpeed; + move thighfr to y-axis [0] speed [120.000000] / animSpeed; + move torso to y-axis [0] speed [26.148374] / animSpeed; + turn footbl to x-axis <0> speed <1845.530194> / animSpeed; + turn footbr to x-axis <0> speed <1845.530194> / animSpeed; + turn footfl to x-axis <0> speed <1281.122224> / animSpeed; + turn footfr to x-axis <0> speed <1281.122224> / animSpeed; + turn legbl to x-axis <0> speed <1598.090096> / animSpeed; + turn legbr to x-axis <0> speed <1598.090096> / animSpeed; + turn legfl to x-axis <0> speed <1606.851043> / animSpeed; + turn legfr to x-axis <0> speed <1606.851043> / animSpeed; + turn sleeve to x-axis <0> speed <73.652964> / animSpeed; + turn thighbl to x-axis <0> speed <908.206933> / animSpeed; + turn thighbl to y-axis <0> speed <93.468264> / animSpeed; + turn thighbl to z-axis <0> speed <41.514204> / animSpeed; + turn thighbr to x-axis <0> speed <908.206933> / animSpeed; + turn thighbr to y-axis <0> speed <91.000057> / animSpeed; + turn thighbr to z-axis <0> speed <47.106694> / animSpeed; + turn thighfl to x-axis <0> speed <831.392892> / animSpeed; + turn thighfl to y-axis <0> speed <90.145523> / animSpeed; + turn thighfl to z-axis <0> speed <19.064712> / animSpeed; + turn thighfr to x-axis <0> speed <831.392790> / animSpeed; + turn thighfr to y-axis <0> speed <101.600520> / animSpeed; + turn thighfr to z-axis <0> speed <17.399562> / animSpeed; + turn torso to x-axis <0> speed <166.567564> / animSpeed; + turn torso to y-axis <0> speed <65.290384> / animSpeed; + turn torso to z-axis <0> speed <21.763462> / animSpeed; + turn turret to y-axis <0> speed <64.628686> / animSpeed; } -// REMEMBER TO animspeed = 6 in Create() !! + +// REMEMBER TO animspeed = 5 in Create() !! UnitSpeed(){ maxSpeed = get MAX_SPEED; // this returns cob units per frame i think - animFramesPerKeyframe = 6; //we need to calc the frames per keyframe value, from the known animtime + animFramesPerKeyframe = 5; //we need to calc the frames per keyframe value, from the known animtime maxSpeed = maxSpeed + (maxSpeed /(2*animFramesPerKeyframe)); // add fudge while(TRUE){ animSpeed = (get CURRENT_SPEED); if (animSpeed<1) animSpeed=1; - animSpeed = (maxSpeed * 6) / animSpeed; + animSpeed = (maxSpeed * 5) / animSpeed; //get PRINT(maxSpeed, animFramesPerKeyframe, animSpeed); //how to print debug info from bos - if (animSpeed<3) animSpeed=3; - if (animspeed>12) animSpeed = 12; - sleep 197; + if (animSpeed<2) animSpeed=2; + if (animspeed>10) animSpeed = 10; + sleep 164; } } + StartMoving(){ - bMoving = TRUE; - signal SIG_WALK; - set-signal-mask SIG_WALK; + signal SIGNAL_MOVE; + isMoving=TRUE; start-script Walk(); - start-script UnitSpeed(); } StopMoving(){ - signal SIG_WALK; - bMoving = FALSE; + signal SIGNAL_MOVE; + isMoving=FALSE; call-script StopWalking(); } @@ -263,191 +445,121 @@ StopMoving(){ #define UNITSIZE 10 #define MAXTILT 100 -#include "unit_hitbyweaponid_and_smoke.h" +#include "../unit_hitbyweaponid_and_smoke.h" Create() { hide lflare; hide rflare; - hide aimy1; - bMoving = FALSE; - bAiming = FALSE; - animSpeed = 6; - Static_Var_3 = 1; - gun_1 = rflare; - hide rflare; - hide lflare; - restore_delay = 3000; - return (0); + hide aimy; + hide aimx; + hide stompfl; + hide stompfr; + hide stompbl; + hide stompbr; + + start-script UnitSpeed(); + + isMoving = FALSE; + isAiming = FALSE; + animSpeed = 5; + gun_1 = 0; + reload = 0; + restore_delay = 8000; } -SetMaxReloadTime(Func_Var_1) +SetMaxReloadTime(reloadMS) { - restore_delay = Func_Var_1 * 2; - return (0); + reload = reloadMS * 100; } -SweetSpot(piecenum) -{ - piecenum = torso; - return (0); -} - RestoreAfterDelay() { sleep restore_delay; - turn aimy1 to y-axis <0.000000> speed 1.5 * <90.000000>; - bAiming = FALSE; - return (0); + turn aimy to y-axis <0.0> speed 1.5 * <90.0>; + turn aimx to x-axis <0.0> speed 1.5 * <90.0>; + isAiming = FALSE; } -AimFromPrimary(piecenum) +AimFromWeapon1(pieceIndex) { - piecenum = turret; - return (0); + pieceIndex = aimy; } -QueryPrimary(piecenum) +QueryWeapon1(pieceIndex) { - if( gun_1 == 0 ) - { - piecenum = rflare; - } - if( gun_1 == 1 ) - { - piecenum = lflare; - } - return (0); + pieceIndex = lflare + gun_1; } -AimPrimary(heading, pitch) +AimWeapon1(heading, pitch) { - signal SIG_AIM; - set-signal-mask SIG_AIM; - bAiming = TRUE; - turn aimy1 to y-axis heading speed 1.5 * <140.000000>; - wait-for-turn aimy1 around y-axis; + signal SIGNAL_AIM1; + set-signal-mask SIGNAL_AIM1; + isAiming = TRUE; + turn aimy to y-axis heading speed 1.5 * <140.0>; + turn aimx to x-axis 0-pitch speed 1.5 * <140.0>; + wait-for-turn aimy around y-axis; start-script RestoreAfterDelay(); return (1); } -FirePrimary() +FireWeapon1() { if( gun_1 == 0 ) { - move lbarrel to z-axis [-3] now; - move lbarrel to z-axis [0] speed [6]; - //show rflare; - //sleep 150; - //hide rflare; - gun_1 = lflare; - return (0); + move rbarrel to z-axis [-4] now; + move rbarrel to z-axis [0] speed (reload*6); } - if( gun_1 == 1 ) + else { - - move rbarrel to z-axis [-3] now; - move rbarrel to z-axis [0] speed [6]; - //show lflare; - //sleep 150; - //hide lflare; - gun_1 = rflare; + move lbarrel to z-axis [-4] now; + move lbarrel to z-axis [0] speed (reload*6); } - return (0); + gun_1 = !gun_1; } //use call-script DeathAnim(); from Killed() DeathAnim() {// For N:\animations\corsumo_anim_death.blend Created by https://github.com/Beherith/Skeletor_S3O V((0, 2, 8)) - signal SIG_WALK; - signal SIG_AIM; + signal SIGNAL_MOVE; + signal SIGNAL_AIM1; call-script StopWalking(); - turn aimy1 to y-axis <0> speed <60>; - if (TRUE) { //Frame:10 - turn lbfoot to x-axis <-14.199999> speed <42.599997> ; //delta=14.20 - turn lbleg to x-axis <18.299999> speed <54.899998> ; //delta=-18.30 - turn lffoot to x-axis <-33.599999> speed <100.799997> ; //delta=33.60 - turn lfleg to x-axis <-26.199998> speed <78.599993> ; //delta=26.20 - turn lfleg to y-axis <17.599999> speed <37.799999> ; //delta=12.60 - turn rbfoot to x-axis <-15.599998> speed <46.799995> ; //delta=15.60 - turn rbleg to x-axis <22.899999> speed <68.699996> ; //delta=-22.90 - turn rffoot to x-axis <-38.499997> speed <115.499991> ; //delta=38.50 - turn rfleg to x-axis <-22.299999> speed <66.899997> ; //delta=22.30 - turn rfleg to y-axis <-18.499998> speed <38.999994> ; //delta=-13.00 - move torso to y-axis [-2.200000] speed [6.599999] ; //delta=-2.20 - turn torso to x-axis <5.300000> speed <15.899999> ; //delta=-5.30 - sleep 329; - } - if (TRUE) { //Frame:18 - turn lbfoot to x-axis <-24.999998> speed <40.499997> ; //delta=10.80 - turn lbleg to x-axis <24.799999> speed <24.374996> ; //delta=-6.50 - turn lffoot to x-axis <-41.599998> speed <29.999997> ; //delta=8.00 - turn lfleg to x-axis <-39.599996> speed <50.249992> ; //delta=13.40 - turn lfleg to y-axis <23.899998> speed <23.624997> ; //delta=6.30 - turn rbfoot to x-axis <-25.999998> speed <38.999998> ; //delta=10.40 - turn rbleg to x-axis <29.799999> speed <25.875002> ; //delta=-6.90 - turn rffoot to x-axis <-49.699994> speed <41.999990> ; //delta=11.20 - turn rfleg to x-axis <-29.900000> speed <28.500004> ; //delta=7.60 - turn rfleg to y-axis <-22.299997> speed <14.249999> ; //delta=-3.80 - move torso to y-axis [-4.630000] speed [9.112499] ; //delta=-2.43 - turn torso to x-axis <9.800000> speed <16.875000> ; //delta=-4.50 - sleep 263; - } - if (TRUE) { //Frame:22 - turn lbfoot to x-axis <-38.499997> speed <101.249990> ; //delta=13.50 - turn lbleg to x-axis <35.899997> speed <83.249987> ; //delta=-11.10 - turn lffoot to x-axis <-47.699999> speed <45.750007> ; //delta=6.10 - turn lfleg to x-axis <-38.235628> speed <10.232759> ; //delta=-1.36 - turn rbfoot to x-axis <-38.499997> speed <93.749994> ; //delta=12.50 - turn rbleg to x-axis <36.099998> speed <47.249994> ; //delta=-6.30 - turn rffoot to x-axis <-67.999997> speed <137.250022> ; //delta=18.30 - turn rfleg to x-axis <-28.022110> speed <14.084179> ; //delta=-1.88 - move torso to y-axis [-6.610000] speed [14.850000] ; //delta=-1.98 - turn torso to x-axis <9.500000> speed <2.249999> ; //delta=0.30 - sleep 131; - } - if (TRUE) { //Frame:27 - turn lbfoot to x-axis <-29.999997> speed <50.999998> ; //delta=-8.50 - turn lbleg to x-axis <23.399998> speed <74.999995> ; //delta=12.50 - turn lfleg to x-axis <-32.999998> speed <31.413782> ; //delta=-5.24 - turn rbfoot to x-axis <-31.399998> speed <42.599992> ; //delta=-7.10 - turn rbleg to x-axis <22.899999> speed <79.199998> ; //delta=13.20 - turn rfleg to x-axis <-22.700001> speed <31.932654> ; //delta=-5.32 - move torso to y-axis [-4.820000] speed [10.740000] ; //delta=1.79 - move turret to x-axis [1.432575] speed [8.595448] ; //delta=1.43 - move turret to z-axis [-39.246407] speed [235.478439] ; //delta=-39.25 - explode turret type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide turret; - explode rbarrel type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide rbarrel; - explode rflare type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide rflare; - explode lbarrel type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide lbarrel; - explode lflare type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide lflare; - sleep 164; - } - if (TRUE) { //Frame:34 - turn lbfoot to x-axis <-44.499997> speed <62.142856> ; //delta=14.50 - turn lbleg to x-axis <31.699997> speed <35.571428> ; //delta=-8.30 - turn lffoot to x-axis <-65.430992> speed <75.989972> ; //delta=17.73 - turn lfleg to x-axis <-21.983350> speed <47.214205> ; //delta=-11.02 - turn rbfoot to x-axis <-42.899995> speed <49.285699> ; //delta=11.50 - turn rbleg to x-axis <32.299999> speed <40.285714> ; //delta=-9.40 - turn rffoot to x-axis <-77.701864> speed <41.579430> ; //delta=9.70 - turn rfleg to x-axis <-15.928187> speed <29.022057> ; //delta=-6.77 - move torso to y-axis [-7.250000] speed [10.414285] ; //delta=-2.43 - sleep 230; - } - if (TRUE) { //Frame:40 - turn lffoot to x-axis <-79.500001> speed <70.345040> ; //delta=14.07 - turn lfleg to x-axis <-16.999999> speed <24.916752> ; //delta=-4.98 - turn rffoot to x-axis <-85.400000> speed <38.490677> ; //delta=7.70 - turn rfleg to x-axis <-13.600001> speed <11.640930> ; //delta=-2.33 - sleep 197; - } + animSpeed = 6; + + hide legfl; + hide footfl; + hide lbarrel; + explode lbarrel type FALL | BITMAP4 | NOHEATCLOUD; + explode footfl type FALL | BITMAP3 | NOHEATCLOUD; + explode legfl type FALL | BITMAP4 | NOHEATCLOUD; + + turn footbl to x-axis <-15> speed <150> / animSpeed; + turn footbr to x-axis <-1> speed <10> / animSpeed; + turn footfr to x-axis <60> speed <600> / animSpeed; + turn legbl to x-axis <-2> speed <20> / animSpeed; + turn legbr to x-axis <27> speed <270> / animSpeed; + turn legfr to x-axis <-22> speed <220> / animSpeed; + turn sleeve to x-axis <20> speed <200> / animSpeed; + turn thighbl to x-axis <6> speed <60> / animSpeed; + turn thighbl to z-axis <-1.1> speed <11> / animSpeed; + turn thighbl to y-axis <-21> speed <210> / animSpeed; + turn thighbr to x-axis <-15> speed <150> / animSpeed; + turn thighbr to z-axis <-1.2> speed <12> / animSpeed; + turn thighbr to y-axis <5> speed <50> / animSpeed; + turn thighfl to x-axis <60> speed <600> / animSpeed; + turn thighfl to z-axis <1.5> speed <15> / animSpeed; + turn thighfl to y-axis <13> speed <130> / animSpeed; + turn thighfr to x-axis <-16> speed <160> / animSpeed; + turn thighfr to y-axis <-14> speed <140> / animSpeed; + move torso to y-axis [-4] speed [40] / animSpeed; + turn torso to x-axis <10> speed <500> / animSpeed; + turn turret to x-axis <8> speed <80> / animSpeed; + turn turret to y-axis <5.5> speed <55> / animSpeed; + turn turret to z-axis <-6> speed <60> / animSpeed; + + sleep(150 * animSpeed); } + Killed(severity, corpsetype) { hide lflare; @@ -461,28 +573,22 @@ Killed(severity, corpsetype) if( severity <= 50 ) { corpsetype = 2; - explode Lbarrel type FALL | BITMAP4 | NOHEATCLOUD; - explode lflare type FALL | BITMAP1 | NOHEATCLOUD; - explode Rbarrel type FALL | BITMAP3 | NOHEATCLOUD; - //explode rflare type FALL | BITMAP4 | NOHEATCLOUD; - explode turret type FALL | BITMAP4 | NOHEATCLOUD; + explode lbarrel type FALL | BITMAP4 | NOHEATCLOUD; + explode footfl type FALL | BITMAP3 | NOHEATCLOUD; + explode legfl type FALL | BITMAP4 | NOHEATCLOUD; return (corpsetype); } if( severity <= 99 ) { corpsetype = 3; - explode Lbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - explode lflare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1 | NOHEATCLOUD; - explode Rbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; - //explode rflare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - explode turret type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; + explode lbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; + explode footfl type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; + explode legfl type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; return (corpsetype); } corpsetype = 3; - explode Lbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - explode lflare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1 | NOHEATCLOUD; - explode Rbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; - //explode rflare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - explode turret type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; + explode lbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; + explode footfl type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; + explode legfl type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; return (corpsetype); } diff --git a/scripts/Units/corsumo.cob b/scripts/Units/corsumo.cob index e89731f793c..b510aeb0935 100644 Binary files a/scripts/Units/corsumo.cob and b/scripts/Units/corsumo.cob differ diff --git a/scripts/Units/corsumo_clean.bos b/scripts/Units/corsumo_clean.bos deleted file mode 100644 index b30fa872d4b..00000000000 --- a/scripts/Units/corsumo_clean.bos +++ /dev/null @@ -1,453 +0,0 @@ - -#include "../recoil_common_includes.h" - -piece lflare, rflare, torso, turret, Rbarrel, Lbarrel, rfleg, rffoot, lfleg, lffoot, rbleg, rbfoot, lbleg, lbfoot, aimy1; - -static-var isMoving, isAiming, restore_delay, gun_1; - -// Signal definitions -#define SIGNAL_AIM1 256 - -lua_UnitScriptDecal(lightIndex, xpos,zpos, heading) -{ - return 0; -} - - -// Generated for N:\animations\corsumo_anim_walk.blend -// Using https://github.com/Beherith/Skeletor_S3O -// this animation uses the static-var animFramesPerKeyframe which contains how many frames each keyframe takes -// Author Beherith mysterme@gmail.com. License: GNU GPL v2. - -static-var animSpeed, maxSpeed, animFramesPerKeyframe; -#define SIGNAL_MOVE 1 -Walk() {//Created by https://github.com/Beherith/Skeletor_S3O from N:\animations\corsumo_anim_walk.blend - set-signal-mask SIGNAL_MOVE; - if (isMoving) { //Frame:6 - turn lbfoot to x-axis <-14.338065> speed <430.141938> / animSpeed; //delta=14.34 - move lbleg to y-axis [-2.334006] speed [70.020182] / animSpeed; //delta=-2.33 - turn lbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=-19.48 - turn lbleg to y-axis <-0.0> speed <170.999984> / animSpeed; //delta=5.70 - turn lffoot to x-axis <-19.354488> speed <580.634655> / animSpeed; //delta=19.35 - move lfleg to y-axis [1.006599] speed [30.197968] / animSpeed; //delta=1.01 - turn lfleg to x-axis <21.784940> speed <653.548188> / animSpeed; //delta=-21.78 - turn lfleg to y-axis <-0.0> speed <149.999983> / animSpeed; //delta=-5.00 - turn rbfoot to x-axis <19.443259> speed <583.297762> / animSpeed; //delta=-19.44 - move rbleg to y-axis [1.788061] speed [53.641845] / animSpeed; //delta=1.79 - turn rbleg to x-axis <-22.741834> speed <682.255012> / animSpeed; //delta=22.74 - turn rbleg to y-axis <0.0> speed <167.999986> / animSpeed; //delta=-5.60 - turn rffoot to x-axis <25.808623> speed <774.258684> / animSpeed; //delta=-25.81 - move rfleg to y-axis [-4.251511] speed [127.545333] / animSpeed; //delta=-4.25 - turn rfleg to x-axis <-26.768777> speed <803.063299> / animSpeed; //delta=26.77 - turn rfleg to y-axis <-0.0> speed <164.999988> / animSpeed; //delta=5.50 - move torso to y-axis [0.842832] speed [25.284952] / animSpeed; //delta=0.84 - turn turret to y-axis <-2.0> speed <60.0> / animSpeed; //delta=-2.00 - sleep ((33*animSpeed) -1); - } - while(isMoving) { - if (isMoving) { //Frame:12 - //call-script lua_UnitScriptDecal(1, (get PIECE_XZ(lbfoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lbfoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <-18.276130> speed <118.141953> / animSpeed; //delta=3.94 - move lbleg to y-axis [-3.471509] speed [34.125080] / animSpeed; //delta=-1.14 - turn lbleg to x-axis <38.963402> speed <584.451023> / animSpeed; //delta=-19.48 - turn lffoot to x-axis <4.325368> speed <710.395694> / animSpeed; //delta=-23.68 - move lfleg to y-axis [0.482331] speed [15.728052] / animSpeed; //delta=-0.52 - turn lfleg to x-axis <-3.120163> speed <747.153070> / animSpeed; //delta=24.91 - turn rbfoot to x-axis <44.038608> speed <737.860470> / animSpeed; //delta=-24.60 - move rbleg to y-axis [0.092369] speed [50.870780] / animSpeed; //delta=-1.70 - turn rbleg to x-axis <-45.483671> speed <682.255114> / animSpeed; //delta=22.74 - turn rffoot to x-axis <-0.0> speed <774.258684> / animSpeed; //delta=25.81 - move rfleg to y-axis [-1.053504] speed [95.940206] / animSpeed; //delta=3.20 - turn rfleg to x-axis <-0.0> speed <803.063299> / animSpeed; //delta=-26.77 - move torso to y-axis [1.0] speed [4.715048] / animSpeed; //delta=0.16 - turn torso to x-axis <0.367080> speed <11.012392> / animSpeed; //delta=-0.37 - turn torso to z-axis <0.380266> speed <11.407970> / animSpeed; //delta=-0.38 - turn turret to y-axis <0.0> speed <60.0> / animSpeed; //delta=2.00 - sleep ((33*animSpeed) -1); - } - if (isMoving) { //Frame:18 - turn lbfoot to x-axis <-19.997443> speed <51.639406> / animSpeed; //delta=1.72 - move lbleg to y-axis [-1.013877] speed [73.728948] / animSpeed; //delta=2.46 - turn lbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=19.48 - turn lffoot to x-axis <7.569844> speed <97.334281> / animSpeed; //delta=-3.24 - move lfleg to y-axis [-1.739398] speed [66.651871] / animSpeed; //delta=-2.22 - turn lfleg to x-axis <-20.244433> speed <513.728111> / animSpeed; //delta=17.12 - turn rbfoot to x-axis <18.619304> speed <762.579112> / animSpeed; //delta=25.42 - move rbleg to y-axis [0.400301] speed [9.237975] / animSpeed; //delta=0.31 - turn rbleg to x-axis <-19.297236> speed <785.593042> / animSpeed; //delta=-26.19 - turn rffoot to x-axis <-23.512202> speed <705.366067> / animSpeed; //delta=23.51 - move rfleg to y-axis [0.933998] speed [59.625063] / animSpeed; //delta=1.99 - turn rfleg to x-axis <24.115777> speed <723.473325> / animSpeed; //delta=-24.12 - move torso to y-axis [0.856374] speed [4.308779] / animSpeed; //delta=-0.14 - turn torso to x-axis <-0.0> speed <11.012392> / animSpeed; //delta=0.37 - turn torso to z-axis <0.630797> speed <7.515927> / animSpeed; //delta=-0.25 - turn turret to y-axis <2.0> speed <60.0> / animSpeed; //delta=2.00 - sleep ((33*animSpeed) -1); - } - if (isMoving) { //Frame:24 - call-script lua_UnitScriptDecal(1, (get PIECE_XZ(rffoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rffoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <-3.752093> speed <487.360515> / animSpeed; //delta=-16.25 - move lbleg to y-axis [1.443754] speed [73.728940] / animSpeed; //delta=2.46 - turn lbleg to x-axis <-0.0> speed <584.451023> / animSpeed; //delta=19.48 - turn lffoot to x-axis <1.115736> speed <193.623236> / animSpeed; //delta=6.45 - move lfleg to y-axis [-3.314694] speed [47.258878] / animSpeed; //delta=-1.58 - turn lfleg to x-axis <-25.309881> speed <151.963427> / animSpeed; //delta=5.07 - turn rbfoot to x-axis <-0.0> speed <558.579120> / animSpeed; //delta=18.62 - move rbleg to y-axis [-1.196503] speed [47.904142] / animSpeed; //delta=-1.60 - turn rbleg to x-axis <-0.0> speed <578.917084> / animSpeed; //delta=-19.30 - turn rffoot to x-axis <-42.724404> speed <576.366060> / animSpeed; //delta=19.21 - move rfleg to y-axis [0.319000] speed [18.449937] / animSpeed; //delta=-0.61 - turn rfleg to x-axis <44.531556> speed <612.473359> / animSpeed; //delta=-20.42 - move torso to y-axis [1.0] speed [4.308779] / animSpeed; //delta=0.14 - turn torso to x-axis <-0.341367> speed <10.241022> / animSpeed; //delta=0.34 - turn torso to z-axis <0.459381> speed <5.142475> / animSpeed; //delta=0.17 - turn turret to y-axis <3.0> speed <30.0> / animSpeed; //delta=1.00 - sleep ((33*animSpeed) -1); - } - if (isMoving) { //Frame:30 - turn lbfoot to x-axis <19.443259> speed <695.860543> / animSpeed; //delta=-23.20 - move lbleg to y-axis [1.788061] speed [10.329219] / animSpeed; //delta=0.34 - turn lbleg to x-axis <-22.741834> speed <682.255012> / animSpeed; //delta=22.74 - turn lffoot to x-axis <25.808623> speed <740.786599> / animSpeed; //delta=-24.69 - move lfleg to y-axis [-4.251511] speed [28.104501] / animSpeed; //delta=-0.94 - turn lfleg to x-axis <-26.768777> speed <43.766879> / animSpeed; //delta=1.46 - turn rbfoot to x-axis <-14.338065> speed <430.141938> / animSpeed; //delta=14.34 - move rbleg to y-axis [-2.334006] speed [34.125080] / animSpeed; //delta=-1.14 - turn rbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=-19.48 - turn rffoot to x-axis <-19.354488> speed <701.097472> / animSpeed; //delta=-23.37 - move rfleg to y-axis [1.006599] speed [20.627969] / animSpeed; //delta=0.69 - turn rfleg to x-axis <21.784940> speed <682.398497> / animSpeed; //delta=22.75 - move torso to y-axis [0.870629] speed [3.881131] / animSpeed; //delta=-0.13 - turn torso to x-axis <-0.0> speed <10.241022> / animSpeed; //delta=-0.34 - turn torso to z-axis <-0.0> speed <13.781423> / animSpeed; //delta=0.46 - turn turret to y-axis <2.0> speed <30.0> / animSpeed; //delta=-1.00 - sleep ((33*animSpeed) -1); - } - if (isMoving) { //Frame:36 - //call-script lua_UnitScriptDecal(1, (get PIECE_XZ(rbfoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(rbfoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <44.038608> speed <737.860470> / animSpeed; //delta=-24.60 - move lbleg to y-axis [0.092369] speed [50.870780] / animSpeed; //delta=-1.70 - turn lbleg to x-axis <-45.483671> speed <682.255114> / animSpeed; //delta=22.74 - turn lffoot to x-axis <-0.0> speed <774.258684> / animSpeed; //delta=25.81 - move lfleg to y-axis [-1.141006] speed [93.315160] / animSpeed; //delta=3.11 - turn lfleg to x-axis <-0.900000> speed <776.063301> / animSpeed; //delta=-25.87 - turn rbfoot to x-axis <-18.276130> speed <118.141953> / animSpeed; //delta=3.94 - move rbleg to y-axis [-3.471509] speed [34.125080] / animSpeed; //delta=-1.14 - turn rbleg to x-axis <38.963402> speed <584.451023> / animSpeed; //delta=-19.48 - turn rffoot to x-axis <4.325368> speed <710.395694> / animSpeed; //delta=-23.68 - move rfleg to y-axis [0.482331] speed [15.728052] / animSpeed; //delta=-0.52 - turn rfleg to x-axis <-3.120163> speed <747.153070> / animSpeed; //delta=24.91 - move torso to y-axis [1.065929] speed [5.859007] / animSpeed; //delta=0.20 - turn torso to x-axis <0.463336> speed <13.900090> / animSpeed; //delta=-0.46 - turn torso to z-axis <-0.426746> speed <12.802373> / animSpeed; //delta=0.43 - turn turret to y-axis <0.0> speed <60.0> / animSpeed; //delta=-2.00 - sleep ((33*animSpeed) -1); - } - if (isMoving) { //Frame:42 - turn lbfoot to x-axis <18.619304> speed <762.579112> / animSpeed; //delta=25.42 - move lbleg to y-axis [0.400301] speed [9.237975] / animSpeed; //delta=0.31 - turn lbleg to x-axis <-19.297236> speed <785.593042> / animSpeed; //delta=-26.19 - turn lffoot to x-axis <-23.512202> speed <705.366067> / animSpeed; //delta=23.51 - move lfleg to y-axis [0.933998] speed [62.250109] / animSpeed; //delta=2.08 - turn lfleg to x-axis <24.115777> speed <750.473323> / animSpeed; //delta=-25.02 - turn rbfoot to x-axis <-19.997443> speed <51.639406> / animSpeed; //delta=1.72 - move rbleg to y-axis [-1.013877] speed [73.728948] / animSpeed; //delta=2.46 - turn rbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=19.48 - turn rffoot to x-axis <7.569844> speed <97.334281> / animSpeed; //delta=-3.24 - move rfleg to y-axis [-1.739398] speed [66.651871] / animSpeed; //delta=-2.22 - turn rfleg to x-axis <-20.244433> speed <513.728111> / animSpeed; //delta=17.12 - move torso to y-axis [0.884884] speed [5.431355] / animSpeed; //delta=-0.18 - turn torso to x-axis <-0.0> speed <13.900090> / animSpeed; //delta=0.46 - turn torso to z-axis <-0.646290> speed <6.586326> / animSpeed; //delta=0.22 - turn turret to y-axis <-2.0> speed <60.0> / animSpeed; //delta=-2.00 - sleep ((33*animSpeed) -1); - } - if (isMoving) { //Frame:48 - call-script lua_UnitScriptDecal(1, (get PIECE_XZ(lffoot) & 0xffff0000) / 0x00010000 , (get PIECE_XZ(lffoot) & 0x0000ffff), get HEADING(0)); - turn lbfoot to x-axis <-0.0> speed <558.579120> / animSpeed; //delta=18.62 - move lbleg to y-axis [-1.196503] speed [47.904142] / animSpeed; //delta=-1.60 - turn lbleg to x-axis <-0.0> speed <578.917084> / animSpeed; //delta=-19.30 - turn lffoot to x-axis <-42.724404> speed <576.366060> / animSpeed; //delta=19.21 - move lfleg to y-axis [0.319000] speed [18.449937] / animSpeed; //delta=-0.61 - turn lfleg to x-axis <44.531556> speed <612.473359> / animSpeed; //delta=-20.42 - turn rbfoot to x-axis <-3.752093> speed <487.360515> / animSpeed; //delta=-16.25 - move rbleg to y-axis [1.443754] speed [73.728940] / animSpeed; //delta=2.46 - turn rbleg to x-axis <-0.0> speed <584.451023> / animSpeed; //delta=19.48 - turn rffoot to x-axis <1.115736> speed <193.623236> / animSpeed; //delta=6.45 - move rfleg to y-axis [-3.314694] speed [47.258878] / animSpeed; //delta=-1.58 - turn rfleg to x-axis <-25.309881> speed <151.963427> / animSpeed; //delta=5.07 - move torso to y-axis [1.0] speed [3.453480] / animSpeed; //delta=0.12 - turn torso to x-axis <-0.402352> speed <12.070557> / animSpeed; //delta=0.40 - turn torso to z-axis <-0.451140> speed <5.854509> / animSpeed; //delta=-0.20 - turn turret to y-axis <-3.0> speed <30.0> / animSpeed; //delta=-1.00 - sleep ((33*animSpeed) -1); - } - if (isMoving) { //Frame:54 - turn lbfoot to x-axis <-14.338065> speed <430.141938> / animSpeed; //delta=14.34 - move lbleg to y-axis [-2.334006] speed [34.125080] / animSpeed; //delta=-1.14 - turn lbleg to x-axis <19.481701> speed <584.451023> / animSpeed; //delta=-19.48 - turn lffoot to x-axis <-19.354488> speed <701.097472> / animSpeed; //delta=-23.37 - move lfleg to y-axis [1.006599] speed [20.627969] / animSpeed; //delta=0.69 - turn lfleg to x-axis <21.784940> speed <682.398497> / animSpeed; //delta=22.75 - turn rbfoot to x-axis <19.443259> speed <695.860543> / animSpeed; //delta=-23.20 - move rbleg to y-axis [1.788061] speed [10.329219] / animSpeed; //delta=0.34 - turn rbleg to x-axis <-22.741834> speed <682.255012> / animSpeed; //delta=22.74 - turn rffoot to x-axis <25.808623> speed <740.786599> / animSpeed; //delta=-24.69 - move rfleg to y-axis [-4.251511] speed [28.104501] / animSpeed; //delta=-0.94 - turn rfleg to x-axis <-26.768777> speed <43.766879> / animSpeed; //delta=1.46 - move torso to y-axis [0.899139] speed [3.025836] / animSpeed; //delta=-0.10 - turn torso to x-axis <-0.0> speed <12.070557> / animSpeed; //delta=-0.40 - turn torso to z-axis <-0.0> speed <13.534190> / animSpeed; //delta=-0.45 - turn turret to y-axis <-2.0> speed <30.0> / animSpeed; //delta=1.00 - sleep ((33*animSpeed) -1); - } - } -} -// Call this from StopMoving()! -StopWalking() { - move lbleg to y-axis [0.0] speed [12.288158]; - move lfleg to y-axis [0.0] speed [15.552527]; - move rbleg to y-axis [0.0] speed [12.288158]; - move rfleg to y-axis [0.0] speed [21.257555]; - move torso to y-axis [0.0] speed [2.500000]; - turn lbfoot to x-axis <0.0> speed <127.096519>; - turn lbleg to x-axis <0.0> speed <130.932174>; - turn lbleg to y-axis <-5.699999> speed <28.499997>; - turn lffoot to x-axis <0.0> speed <194.749310>; - turn lfleg to x-axis <0.0> speed <189.555149>; - turn lfleg to y-axis <4.999999> speed <24.999997>; - turn rbfoot to x-axis <0.0> speed <127.096519>; - turn rbleg to x-axis <0.0> speed <130.932174>; - turn rbleg to y-axis <5.600000> speed <27.999998>; - turn rffoot to x-axis <0.0> speed <194.749310>; - turn rfleg to x-axis <0.0> speed <189.555149>; - turn rfleg to y-axis <-5.500000> speed <27.499998>; - turn torso to x-axis <0.0> speed <5.0>; - turn torso to z-axis <0.0> speed <5.0>; - turn turret to x-axis <0.0> speed <10.550000>; - turn turret to y-axis <0.0> speed <10.0>; -} -// REMEMBER TO animspeed = 6 in Create() !! -UnitSpeed(){ - maxSpeed = get MAX_SPEED; // this returns cob units per frame i think - animFramesPerKeyframe = 6; //we need to calc the frames per keyframe value, from the known animtime - maxSpeed = maxSpeed + (maxSpeed /(2*animFramesPerKeyframe)); // add fudge - while(TRUE){ - animSpeed = (get CURRENT_SPEED); - if (animSpeed<1) animSpeed=1; - animSpeed = (maxSpeed * 6) / animSpeed; - //get PRINT(maxSpeed, animFramesPerKeyframe, animSpeed); //how to print debug info from bos - if (animSpeed<3) animSpeed=3; - if (animspeed>12) animSpeed = 12; - sleep 197; - } -} -StartMoving(reversing){ - isMoving = TRUE; - signal SIGNAL_MOVE; - set-signal-mask SIGNAL_MOVE; - start-script Walk(); - start-script UnitSpeed(); -} - -StopMoving(){ - signal SIGNAL_MOVE; - isMoving = FALSE; - call-script StopWalking(); -} - -#define BASEPIECE torso -#define HITSPEED <45.0> -//how 'heavy' the unit is, on a scale of 1-10 -#define UNITSIZE 10 -#define MAXTILT 100 - -#include "../unit_hitbyweaponid_and_smoke.h" - -Create() -{ - hide lflare; - hide rflare; - hide aimy1; - isMoving = FALSE; - isAiming = FALSE; - animSpeed = 6; - gun_1 = 0; - restore_delay = 3000; -} - -SetMaxReloadTime(reloadMS) -{ - restore_delay = reloadMS * 2; -} - - -RestoreAfterDelay() -{ - sleep restore_delay; - turn aimy1 to y-axis <0.0> speed 1.5 * <90.0>; - isAiming = FALSE; -} - -AimFromWeapon1(pieceIndex) -{ - pieceIndex = turret; -} - -QueryWeapon1(pieceIndex) -{ - pieceIndex = lflare + gun_1; -} - -AimWeapon1(heading, pitch) -{ - signal SIGNAL_AIM1; - set-signal-mask SIGNAL_AIM1; - isAiming = TRUE; - turn aimy1 to y-axis heading speed 1.5 * <140.0>; - wait-for-turn aimy1 around y-axis; - start-script RestoreAfterDelay(); - return (1); -} - -FireWeapon1() -{ - if( gun_1 == 0 ) - { - move rbarrel to z-axis [-3] now; - move rbarrel to z-axis [0] speed [6]; - } - else - { - move lbarrel to z-axis [-3] now; - move lbarrel to z-axis [0] speed [6]; - } - gun_1 = !gun_1; -} - -//use call-script DeathAnim(); from Killed() -DeathAnim() {// For N:\animations\corsumo_anim_death.blend Created by https://github.com/Beherith/Skeletor_S3O V((0, 2, 8)) - signal SIGNAL_MOVE; - signal SIGNAL_AIM1; - call-script StopWalking(); - turn aimy1 to y-axis <0> speed <60>; - if (TRUE) { //Frame:10 - turn lbfoot to x-axis <-14.199999> speed <42.599997> ; //delta=14.20 - turn lbleg to x-axis <18.299999> speed <54.899998> ; //delta=-18.30 - turn lffoot to x-axis <-33.599999> speed <100.799997> ; //delta=33.60 - turn lfleg to x-axis <-26.199998> speed <78.599993> ; //delta=26.20 - turn lfleg to y-axis <17.599999> speed <37.799999> ; //delta=12.60 - turn rbfoot to x-axis <-15.599998> speed <46.799995> ; //delta=15.60 - turn rbleg to x-axis <22.899999> speed <68.699996> ; //delta=-22.90 - turn rffoot to x-axis <-38.499997> speed <115.499991> ; //delta=38.50 - turn rfleg to x-axis <-22.299999> speed <66.899997> ; //delta=22.30 - turn rfleg to y-axis <-18.499998> speed <38.999994> ; //delta=-13.00 - move torso to y-axis [-2.200000] speed [6.599999] ; //delta=-2.20 - turn torso to x-axis <5.300000> speed <15.899999> ; //delta=-5.30 - sleep 329; - } - if (TRUE) { //Frame:18 - turn lbfoot to x-axis <-24.999998> speed <40.499997> ; //delta=10.80 - turn lbleg to x-axis <24.799999> speed <24.374996> ; //delta=-6.50 - turn lffoot to x-axis <-41.599998> speed <29.999997> ; //delta=8.00 - turn lfleg to x-axis <-39.599996> speed <50.249992> ; //delta=13.40 - turn lfleg to y-axis <23.899998> speed <23.624997> ; //delta=6.30 - turn rbfoot to x-axis <-25.999998> speed <38.999998> ; //delta=10.40 - turn rbleg to x-axis <29.799999> speed <25.875002> ; //delta=-6.90 - turn rffoot to x-axis <-49.699994> speed <41.999990> ; //delta=11.20 - turn rfleg to x-axis <-29.900000> speed <28.500004> ; //delta=7.60 - turn rfleg to y-axis <-22.299997> speed <14.249999> ; //delta=-3.80 - move torso to y-axis [-4.630000] speed [9.112499] ; //delta=-2.43 - turn torso to x-axis <9.800000> speed <16.875000> ; //delta=-4.50 - sleep 263; - } - if (TRUE) { //Frame:22 - turn lbfoot to x-axis <-38.499997> speed <101.249990> ; //delta=13.50 - turn lbleg to x-axis <35.899997> speed <83.249987> ; //delta=-11.10 - turn lffoot to x-axis <-47.699999> speed <45.750007> ; //delta=6.10 - turn lfleg to x-axis <-38.235628> speed <10.232759> ; //delta=-1.36 - turn rbfoot to x-axis <-38.499997> speed <93.749994> ; //delta=12.50 - turn rbleg to x-axis <36.099998> speed <47.249994> ; //delta=-6.30 - turn rffoot to x-axis <-67.999997> speed <137.250022> ; //delta=18.30 - turn rfleg to x-axis <-28.022110> speed <14.084179> ; //delta=-1.88 - move torso to y-axis [-6.610000] speed [14.850000] ; //delta=-1.98 - turn torso to x-axis <9.500000> speed <2.249999> ; //delta=0.30 - sleep 131; - } - if (TRUE) { //Frame:27 - turn lbfoot to x-axis <-29.999997> speed <50.999998> ; //delta=-8.50 - turn lbleg to x-axis <23.399998> speed <74.999995> ; //delta=12.50 - turn lfleg to x-axis <-32.999998> speed <31.413782> ; //delta=-5.24 - turn rbfoot to x-axis <-31.399998> speed <42.599992> ; //delta=-7.10 - turn rbleg to x-axis <22.899999> speed <79.199998> ; //delta=13.20 - turn rfleg to x-axis <-22.700001> speed <31.932654> ; //delta=-5.32 - move torso to y-axis [-4.820000] speed [10.740000] ; //delta=1.79 - move turret to x-axis [1.432575] speed [8.595448] ; //delta=1.43 - move turret to z-axis [-39.246407] speed [235.478439] ; //delta=-39.25 - explode turret type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide turret; - explode rbarrel type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide rbarrel; - explode rflare type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide rflare; - explode lbarrel type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide lbarrel; - explode lflare type FALL|SMOKE|FIRE|NOHEATCLOUD; - hide lflare; - sleep 164; - } - if (TRUE) { //Frame:34 - turn lbfoot to x-axis <-44.499997> speed <62.142856> ; //delta=14.50 - turn lbleg to x-axis <31.699997> speed <35.571428> ; //delta=-8.30 - turn lffoot to x-axis <-65.430992> speed <75.989972> ; //delta=17.73 - turn lfleg to x-axis <-21.983350> speed <47.214205> ; //delta=-11.02 - turn rbfoot to x-axis <-42.899995> speed <49.285699> ; //delta=11.50 - turn rbleg to x-axis <32.299999> speed <40.285714> ; //delta=-9.40 - turn rffoot to x-axis <-77.701864> speed <41.579430> ; //delta=9.70 - turn rfleg to x-axis <-15.928187> speed <29.022057> ; //delta=-6.77 - move torso to y-axis [-7.250000] speed [10.414285] ; //delta=-2.43 - sleep 230; - } - if (TRUE) { //Frame:40 - turn lffoot to x-axis <-79.500001> speed <70.345040> ; //delta=14.07 - turn lfleg to x-axis <-16.999999> speed <24.916752> ; //delta=-4.98 - turn rffoot to x-axis <-85.400000> speed <38.490677> ; //delta=7.70 - turn rfleg to x-axis <-13.600001> speed <11.640930> ; //delta=-2.33 - sleep 197; - } -} -Killed(severity, corpsetype) -{ - hide lflare; - hide rflare; - if( severity <= 25 ) - { - call-script DeathAnim(); - corpsetype = 1; - return (corpsetype); - } - if( severity <= 50 ) - { - corpsetype = 2; - explode Lbarrel type FALL | BITMAP4 | NOHEATCLOUD; - explode lflare type FALL | BITMAP1 | NOHEATCLOUD; - explode Rbarrel type FALL | BITMAP3 | NOHEATCLOUD; - explode turret type FALL | BITMAP4 | NOHEATCLOUD; - return (corpsetype); - } - if( severity <= 99 ) - { - corpsetype = 3; - explode Lbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - explode lflare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1 | NOHEATCLOUD; - explode Rbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; - explode turret type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - return (corpsetype); - } - corpsetype = 3; - explode Lbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - explode lflare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1 | NOHEATCLOUD; - explode Rbarrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; - explode turret type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4 | NOHEATCLOUD; - return (corpsetype); -} diff --git a/scripts/Units/corsumo_clean.cob b/scripts/Units/corsumo_clean.cob deleted file mode 100644 index 73fc63309b7..00000000000 Binary files a/scripts/Units/corsumo_clean.cob and /dev/null differ diff --git a/scripts/Units/cortoast.bos b/scripts/Units/cortoast.bos index 8419375af49..ea014820620 100644 --- a/scripts/Units/cortoast.bos +++ b/scripts/Units/cortoast.bos @@ -3,13 +3,12 @@ #include "sfxtype.h" #include "exptype.h" +#include "smart_weapon_select.h" -piece base, flare, turret, door1, door2, barrel, bore, aimpoint; +piece base, flare, turret, door1, door2, barrel, bore, aimpoint, turretmidpoint; -static-var turretOpen, restoreDelay, stunned, trajectoryMode; +static-var turretOpen, restoreDelay, stunned; #define SIGNAL_AIM 1 -#define LOW_TRAJECTORY 0 -#define HIGH_TRAJECTORY 1 openTurret() { @@ -71,11 +70,6 @@ Stop() return (0); } -RequestState(requestedstate) -{ - trajectoryMode = requestedstate; -} - ExecuteRestoreAfterDelay() { if (stunned) @@ -127,18 +121,6 @@ Create() #define SMOKEPIECE base #include "smokeunit_thread_nohit.h" -Activate() -{ - signal SIGNAL_AIM; - start-script RequestState(HIGH_TRAJECTORY); -} - -Deactivate() -{ - signal SIGNAL_AIM; - start-script RequestState(LOW_TRAJECTORY); -} - aimCommon(heading, pitch) { while( turretOpen == 0 ) @@ -154,47 +136,61 @@ aimCommon(heading, pitch) AimPrimary(heading, pitch) { + if (AimingState != AIMING_PRIORITY) + { + return(0); + } + start-script Go(); - if(trajectoryMode != LOW_TRAJECTORY) - { - return(0); - } - signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; call-script aimCommon(heading, pitch); start-script RestoreAfterDelay(); - // Prevent low-trajectory "bonus shots" while high-trajectory is reloading + // Prevent "bonus shots" while alternative weapon is reloading var reloading; reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(2)); if( reloading ) { return(0); } - + return (1); } AimSecondary(heading, pitch) { - start-script Go(); - - if(trajectoryMode != HIGH_TRAJECTORY) + if (AimingState != AIMING_BACKUP) { return(0); } + start-script Go(); + signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; call-script aimCommon(heading, pitch); start-script RestoreAfterDelay(); + + // Prevent "bonus shots" while alternative weapon is reloading + var reloading; + reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(1)); + if( reloading ) + { + return(0); + } + return (1); } +AimTertiary(piecenum) +{ + return (0); +} + fireCommon() { emit-sfx 1024 + 0 from flare; @@ -235,6 +231,11 @@ QuerySecondary(piecenum) piecenum = flare; } +QueryTertiary(piecenum) +{ + piecenum = turretmidpoint; +} + SweetSpot(piecenum) { piecenum = base; diff --git a/scripts/Units/cortoast.cob b/scripts/Units/cortoast.cob index ba4500a7e66..99ce3086564 100644 Binary files a/scripts/Units/cortoast.cob and b/scripts/Units/cortoast.cob differ diff --git a/scripts/Units/coruwmmm_clean.bos b/scripts/Units/coruwmmm_clean.bos index db223fa734b..bfc6dc7514d 100644 --- a/scripts/Units/coruwmmm_clean.bos +++ b/scripts/Units/coruwmmm_clean.bos @@ -1,7 +1,7 @@ #include "../recoil_common_includes.h" -piece base, fan, emit, stop; +piece base, fan, emit; static-var Active; @@ -9,6 +9,7 @@ static-var Active; #define WATER_ROCK_UNITSIZE 17 #include "../floatmotion.h" + MMStatus(State) { Active = State; @@ -16,23 +17,20 @@ MMStatus(State) { spin fan around y-axis speed <300.0> accelerate <10>; show emit; - hide stop; } else { stop-spin fan around y-axis decelerate <5>; hide emit; - show stop; } } Create() { - hide stop; - hide emit; - start-script FloatMotion(); + start-script FloatMotion(); } + #define BASEPIECE base #define MAXTILT 100 #define UNITSIZE 10 diff --git a/scripts/Units/coruwmmm_clean.cob b/scripts/Units/coruwmmm_clean.cob index 017b435cc09..45d2dc70f14 100644 Binary files a/scripts/Units/coruwmmm_clean.cob and b/scripts/Units/coruwmmm_clean.cob differ diff --git a/scripts/Units/legaap.bos b/scripts/Units/legaap.bos new file mode 100644 index 00000000000..a21b4b39750 --- /dev/null +++ b/scripts/Units/legaap.bos @@ -0,0 +1,224 @@ + +#include "../recoil_common_includes.h" +#include "../factories_common.h" + +piece flare1, flare2, flare3, flare4, flare5, flare6, flare7, flare8, blink, pad, base, nanorod_l, nano_l, nanorod_r, nano_r, radar, cagelights, cagelight1_emit, cagelight2_emit; + +static-var spray, Stunned; + +// Signal definitions +#define SIGNAL_BUILD 2 +#define SIGNAL_TURNON 4 + + +Create() +{ + hide pad; + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide flare5; + hide flare6; + hide flare7; + hide flare8; + hide blink; + hide cagelight1_emit; + hide cagelight2_emit; + + spray = 0; + + SLEEP_UNTIL_UNITFINISHED; + spin radar around y-axis speed <120> accelerate <1>; + start-script Lights(); + call-script DishSpin(); +} + +#define BASEPIECE base +#define MAXTILT 0 +#include "../unit_hitbyweaponid_and_smoke.h" + +QueryNanoPiece(pieceIndex) +{ + spray = spray + 1; + if (spray >= 8) + { + spray = 0; + } + pieceIndex = flare1 + spray; +} + +DishSpin() +{ + show blink; + spin radar around y-axis speed <150>; +} + +DishStopSpin() +{ + hide blink; + spin radar around y-axis speed <0.0>; +} + +SetStunned(State) +{ + Stunned = State; + if (Stunned) { + hide blink; + call-script DishStopSpin(); + } else { + call-script DishSpin(); + } +} + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + FACTORY_OPEN_BUILD; +} + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + FACTORY_OPEN_BUILD; + + +} + +Deactivate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + sleep 5000; + + turn nanorod_l to y-axis 0 speed <30>; + turn nanorod_r to y-axis 0 speed <30>; + + turn nano_l to z-axis 0 speed <30>; + turn nano_r to z-axis 0 speed <30>; + wait-for-turn nano_l around z-axis; + + FACTORY_CLOSE_BUILD; +} + +MoveCranes() +{ + while(TRUE) + { + turn nano_l to z-axis rand(-2500, 2500) speed <45>; + turn nanorod_l to y-axis rand(-8000, 1500) speed <45>; + + sleep(800); + + turn nano_r to z-axis rand(-2500, 2500) speed <45>; + turn nanorod_r to y-axis rand(-1500, 8000) speed <45>; + sleep(800); + } +} + +Lights() +{ + while( TRUE ) + { + if (!Stunned) { + emit-sfx 1024 + 1 from blink; + } + sleep 2500; + } + sleep 50; + start-script Lights(); +} + + +StartBuilding() +{ + show flare1; + show flare2; + show flare3; + show flare4; + show flare5; + show flare6; + show flare7; + show flare8; + + show cagelight1_emit; + show cagelight2_emit; + move cagelights to y-axis [2] speed [8]; + spin cagelight1_emit around y-axis speed <200> accelerate <1>; + spin cagelight2_emit around y-axis speed <200> accelerate <1>; + + + signal SIGNAL_BUILD; + set-signal-mask SIGNAL_BUILD; + start-script MoveCranes(); +} + +StopBuilding() +{ + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide flare5; + hide flare6; + hide flare7; + hide flare8; + + hide cagelight1_emit; + hide cagelight2_emit; + move cagelights to y-axis [0] speed [8]; + stop-spin cagelight1_emit around y-axis decelerate <1>; + stop-spin cagelight2_emit around y-axis decelerate <1>; + + signal SIGNAL_BUILD; +} + +QueryBuildInfo(pieceIndex) +{ + pieceIndex = pad; +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type BITMAPONLY | NOHEATCLOUD; + explode nanorod_r type BITMAPONLY | NOHEATCLOUD; + explode nano_l type BITMAPONLY | NOHEATCLOUD; + explode nano_r type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanorod_r type FALL | NOHEATCLOUD; + explode nano_l type FALL | NOHEATCLOUD; + explode nano_r type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nanorod_r type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nano_l type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano_r type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanorod_r type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nano_l type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nano_r type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legaap.cob b/scripts/Units/legaap.cob new file mode 100644 index 00000000000..7c28e0330b6 Binary files /dev/null and b/scripts/Units/legaap.cob differ diff --git a/scripts/Units/legacluster.bos b/scripts/Units/legacluster.bos index 187674a748c..5e96af05f91 100644 --- a/scripts/Units/legacluster.bos +++ b/scripts/Units/legacluster.bos @@ -2,6 +2,7 @@ #include "sfxtype.h" #include "exptype.h" +#include "smart_weapon_select.h" //piece base, turret, sleeve, barrel, flare; @@ -21,13 +22,11 @@ door3, door4, door5, door6, -mainStrut, supportStrut, housingStrut, sleeveHousing, sleeveBottom, sleeveTop, barrelBottom, barrelTop, flareBottom, flareTop; +mainStrut, supportStrut, housingStrut, sleeveHousing, sleeveBottom, sleeveTop, barrelBottom, barrelTop, flareBottom, flareTop, turretmidpoint; -static-var turretOpen, nextBarrel, trajectoryMode, lastHeading, stunned, restoreDelay; +static-var turretOpen, nextBarrel, lastHeading, stunned, restoreDelay; #define SIGNAL_AIM 1 -#define LOW_TRAJECTORY 0 -#define HIGH_TRAJECTORY 1 #define SMOKEPIECE base #include "smokeunit_thread_nohit.h" @@ -69,7 +68,6 @@ Create() { sleep 1000; } - start-script RestoreAfterDelay(); return (0); @@ -148,30 +146,12 @@ Stop(){ return (0); } -RequestState(requestedState) -{ - trajectoryMode = requestedstate; -} - -Activate() -{ - signal SIGNAL_AIM; - start-script RequestState(HIGH_TRAJECTORY); -} - -Deactivate() -{ - signal SIGNAL_AIM; - start-script RequestState(LOW_TRAJECTORY); -} - ExecuteRestoreAfterDelay() { if (stunned) { return (1); } - set-signal-mask 0; turn mainStrut to y-axis <0.000000> speed <100.016484>; turn sleeveHousing to x-axis <0.000000> speed <50.005495>; @@ -229,25 +209,25 @@ aimCommonHigh(heading, pitch) AimPrimary(heading, pitch) { start-script Go(); - - if(trajectoryMode != LOW_TRAJECTORY) - { - return(0); - } + if (AimingState != AIMING_PRIORITY) + { + return(0); + } + signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; call-script aimCommon(heading, pitch); start-script RestoreAfterDelay(); - // Prevent low-trajectory "bonus shots" while high-trajectory is reloading + // Prevent "bonus shots" while alternative weapon is reloading var reloading; reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(2)); if( reloading ) { return(0); } - + return (1); } @@ -255,7 +235,7 @@ AimSecondary(heading, pitch) { start-script Go(); - if(trajectoryMode != HIGH_TRAJECTORY) + if (AimingState != AIMING_BACKUP) { return(0); } @@ -265,9 +245,23 @@ AimSecondary(heading, pitch) call-script aimCommonHigh(heading, pitch); start-script RestoreAfterDelay(); + + // Prevent "bonus shots" while alternative weapon is reloading + var reloading; + reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(1)); + if( reloading ) + { + return(0); + } + return (1); } +AimTertiary(piecenum) +{ + return (0); +} + AimFromPrimary(piecenum) { piecenum = sleeveHousing; @@ -331,6 +325,11 @@ QuerySecondary(piecenum) } } +QueryTertiary(piecenum) +{ + piecenum = turretmidpoint; +} + SweetSpot(piecenum) { piecenum = base; diff --git a/scripts/Units/legacluster.cob b/scripts/Units/legacluster.cob index 3e0946124c9..b4b5dd9cc7a 100644 Binary files a/scripts/Units/legacluster.cob and b/scripts/Units/legacluster.cob differ diff --git a/scripts/Units/legafus.bos b/scripts/Units/legafus.bos new file mode 100644 index 00000000000..92d06255b69 --- /dev/null +++ b/scripts/Units/legafus.bos @@ -0,0 +1,214 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece base, arm1b, arm1m, arm1t, arm2b, arm2m, arm2t, arm3b, arm3m, arm3t, arm4b, arm4m, arm4t, piston1, piston2, piston3, piston4, emit; + +static-var statechg_DesiredState, statechg_StateChanging; +static-var Stunned; + + +InitState() +{ + statechg_DesiredState = TRUE; + statechg_StateChanging = FALSE; + return (0); +} + + +#define SMOKEPIECE base +#include "smokeunit_thread_nohit.h" +//#define ARMSPEED <8> +//#define ARMSPEED2 <8> + +ArmSwing() { + signal 4; + set-signal-mask 4; +// var turnAngle; + while(TRUE) { +// turnAngle = rand(0, <1.2>); +// turnAngle = turnAngle +<15>; +// turn arm1t to z-axis (0-turnAngle) speed ARMSPEED; +// turn arm2t to x-axis (0-turnAngle) speed ARMSPEED; +// turn arm3t to z-axis turnAngle speed ARMSPEED; +// turn arm4t to x-axis turnAngle speed ARMSPEED; +// turn arm1t to x-axis rand(0, <1.2>) speed ARMSPEED2; +// turn arm2t to z-axis rand(0, <1.2>) speed ARMSPEED2; +// turn arm3t to x-axis rand(0, <1.2>) speed ARMSPEED2; +// turn arm4t to z-axis rand(0, <1.2>) speed ARMSPEED2; +// wait-for-turn arm1t around z-axis; +// wait-for-turn arm1t around x-axis; +// move away from orb + turn arm1b to x-axis <-5> speed <15>; + turn arm1m to x-axis <5> speed <10>; + turn piston1 to x-axis <-5> speed <10>; + turn arm1t to z-axis <2> speed <15>; + turn arm2b to z-axis <-5> speed <15>; + turn arm2m to z-axis <5> speed <10>; + turn piston2 to z-axis <-5> speed <10>; + turn arm2t to x-axis <2> speed <15>; + turn arm3b to x-axis <5> speed <15>; + turn arm3m to x-axis <-5> speed <10>; + turn piston3 to x-axis <5> speed <10>; + turn arm3t to z-axis <-2> speed <15>; + turn arm4b to z-axis <5> speed <15>; + turn arm4m to z-axis <-5> speed <10>; + turn piston4 to z-axis <5> speed <10>; + turn arm4t to x-axis <-2> speed <15>; + sleep(2600); +// move towards orb + turn arm1b to x-axis <5> speed <10>; + turn arm1m to x-axis <-5> speed <15>; + turn piston1 to x-axis <5> speed <12>; + turn arm1t to z-axis <-2> speed <15>; + turn arm2b to z-axis <5> speed <10>; + turn arm2m to z-axis <-5> speed <15>; + turn piston2 to z-axis <5> speed <12>; + turn arm2t to x-axis <-2> speed <15>; + turn arm3b to x-axis <-5> speed <10>; + turn arm3m to x-axis <5> speed <15>; + turn piston3 to x-axis <-5> speed <12>; + turn arm3t to z-axis <2> speed <15>; + turn arm4b to z-axis <-5> speed <10>; + turn arm4m to z-axis <5> speed <15>; + turn piston4 to z-axis <-5> speed <12>; + turn arm4t to x-axis <2> speed <15>; + sleep(2600); +// reset + turn arm1b to x-axis <0> speed <10>; + turn arm1m to x-axis <0> speed <10>; + turn piston1 to x-axis <0> speed <10>; + turn arm1t to z-axis <0> speed <15>; + turn arm2b to z-axis <0> speed <10>; + turn arm2m to z-axis <0> speed <10>; + turn piston2 to z-axis <0> speed <10>; + turn arm2t to x-axis <0> speed <15>; + turn arm3b to x-axis <0> speed <10>; + turn arm3m to x-axis <0> speed <10>; + turn piston3 to x-axis <0> speed <10>; + turn arm3t to z-axis <0> speed <15>; + turn arm4b to z-axis <0> speed <10>; + turn arm4m to z-axis <0> speed <10>; + turn piston4 to z-axis <0> speed <10>; + turn arm4t to x-axis <0> speed <15>; + sleep(2600); + } +} + + +Go() +{ + start-script ArmSwing(); + set ARMORED to 1; + return (0); +} + +Stop() +{ + signal 4; + spin arm1t around y-axis speed <0.000000>; + spin arm2t around y-axis speed <0.000000>; + spin arm3t around y-axis speed <0.000000>; + spin arm4t around y-axis speed <0.000000>; + move arm1t to z-axis [0] speed [0]; + move arm2t to x-axis [0] speed [0]; + move arm3t to z-axis [0] speed [0]; + move arm4t to x-axis [0] speed [0]; + set ARMORED to 0; + return (0); +} +Create() +{ + call-script InitState(); + while( get BUILD_PERCENT_LEFT ) + { + sleep 1000; + } + call-script Go(); + return (0); + +} + +SetStunned(State) +{ + Stunned = State; + if (Stunned) { + hide emit; + call-script Stop(); + } else { + show emit; + call-script Go(); + } +} + + +RequestState(requestedstate, currentstate) +{ + if( statechg_StateChanging ) + { + statechg_DesiredState = requestedstate; + return (0); + } + statechg_StateChanging = TRUE; + currentstate = statechg_DesiredState; + statechg_DesiredState = requestedstate; + while( statechg_DesiredState != currentstate ) + { + if( statechg_DesiredState == 0 ) + { + call-script Go(); + currentstate = 0; + } + if( statechg_DesiredState == 1 ) + { + call-script Stop(); + currentstate = 1; + } + } + statechg_StateChanging = FALSE; + return (0); +} + +Activate() +{ + start-script RequestState(0); + return (0); +} + +Deactivate() +{ + start-script RequestState(1); + return (0); +} + +SweetSpot(piecenum) +{ + piecenum = base; + return (0); +} + +Killed(severity, corpsetype) +{ + if( severity <= 12 ) + { + corpsetype = 1; + return (corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2; + return (corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3; + return (corpsetype); + } + corpsetype = 3; + explode arm1t type SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3 | NOHEATCLOUD; + explode arm2t type SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP5 | NOHEATCLOUD; + explode arm3t type SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP5 | NOHEATCLOUD; + explode arm4t type SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP5 | NOHEATCLOUD; + return (corpsetype); +} diff --git a/scripts/Units/legafus.cob b/scripts/Units/legafus.cob new file mode 100644 index 00000000000..a87bf30c654 Binary files /dev/null and b/scripts/Units/legafus.cob differ diff --git a/scripts/Units/legalab.bos b/scripts/Units/legalab.bos new file mode 100644 index 00000000000..c96c8309ad1 --- /dev/null +++ b/scripts/Units/legalab.bos @@ -0,0 +1,191 @@ + +#include "../recoil_common_includes.h" +#include "../factories_common.h" + +piece flare1, flare2, flare3, flare4, flare5, flare6, flare7, flare8, pad, base, arml, nanol, armr, nanor, exhaust, ventsmoke1, ventsmoke2, cagelight1, cagelight1_emit, cagelight2, cagelight2_emit; + +static-var spray; + +// Signal definitions +#define SIGNAL_BUILD 2 +#define SIGNAL_TURNON 4 + + +Create() +{ + hide pad; + hide ventsmoke1; + hide ventsmoke2; + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide flare5; + hide flare6; + hide flare7; + hide flare8; + hide cagelight1_emit; + hide cagelight2_emit; + spray = 0; +} + +#define BASEPIECE base +#define MAXTILT 0 +#include "../unit_hitbyweaponid_and_smoke.h" + +QueryNanoPiece(pieceIndex) +{ + spray = spray + 1; + if (spray >= 8) + { + spray = 0; + } + pieceIndex = flare1 + spray; +} + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + FACTORY_OPEN_BUILD; + + move arml to y-axis [10] speed [10]; + move armr to y-axis [10] speed [10]; + move exhaust to y-axis [6] speed [8]; +} + +Deactivate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + sleep 5000; + + turn arml to z-axis 0 speed <30>; + turn armr to z-axis 0 speed <30>; + turn nanol to y-axis 0 speed <30>; + turn nanor to y-axis 0 speed <30>; + wait-for-turn nanol around y-axis; + + move arml to y-axis [0] speed [10]; + move armr to y-axis [0] speed [10]; + move exhaust to y-axis [0] speed [8]; + wait-for-move arml along y-axis; + + FACTORY_CLOSE_BUILD; +} + + +MoveCranes() +{ + while(TRUE) + { + turn nanol to y-axis rand(-4500, 4500) speed <45>; + turn arml to z-axis rand(-5000, 3000) speed <45>; + + sleep(400); + emit-sfx 257 from ventsmoke1; + sleep(400); + emit-sfx 257 from ventsmoke2; + + turn nanor to y-axis rand(-4500, 4500) speed <45>; + turn armr to z-axis rand(-3000, 5000) speed <45>; + + sleep(400); + emit-sfx 257 from ventsmoke1; + sleep(400); + emit-sfx 257 from ventsmoke2; + } +} + + +StartBuilding() +{ + show flare1; + show flare2; + show flare3; + show flare4; + show flare5; + show flare6; + show flare7; + show flare8; + + show cagelight1_emit; + show cagelight2_emit; + move cagelight1 to y-axis [2] speed [8]; + move cagelight2 to y-axis [2] speed [8]; + spin cagelight1_emit around y-axis speed <200> accelerate <1>; + spin cagelight2_emit around y-axis speed <200> accelerate <1>; + + signal SIGNAL_BUILD; + set-signal-mask SIGNAL_BUILD; + start-script MoveCranes(); +} + +StopBuilding() +{ + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide flare5; + hide flare6; + hide flare7; + hide flare8; + + hide cagelight1_emit; + hide cagelight2_emit; + move cagelight1 to y-axis [0] speed [8]; + move cagelight2 to y-axis [0] speed [8]; + stop-spin cagelight1_emit around y-axis decelerate <1>; + stop-spin cagelight2_emit around y-axis decelerate <1>; + + signal SIGNAL_BUILD; +} + +QueryBuildInfo(pieceIndex) +{ + pieceIndex = pad; +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type BITMAPONLY | NOHEATCLOUD; + explode armr type BITMAPONLY | NOHEATCLOUD; + explode nanol type BITMAPONLY | NOHEATCLOUD; + explode nanor type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode armr type FALL | NOHEATCLOUD; + explode nanol type FALL | NOHEATCLOUD; + explode nanor type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode armr type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nanol type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanor type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode armr type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nanol type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nanor type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legalab.cob b/scripts/Units/legalab.cob new file mode 100644 index 00000000000..57593bee908 Binary files /dev/null and b/scripts/Units/legalab.cob differ diff --git a/scripts/Units/legap.bos b/scripts/Units/legap.bos new file mode 100644 index 00000000000..5fb266afd24 --- /dev/null +++ b/scripts/Units/legap.bos @@ -0,0 +1,201 @@ + +#include "../recoil_common_includes.h" +#include "../factories_common.h" + +piece flare1, flare2, flare3, flare4, pad, base, nanorod_l, nano_l, nanorod_r, nano_r, radar, blink, cagelight1, cagelight1_emit; + +static-var spray, Stunned; + +// Signal definitions +#define SIGNAL_BUILD 2 +#define SIGNAL_TURNON 4 + + +Create() +{ + hide pad; + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide blink; + hide cagelight1_emit; + + spray = 0; + + SLEEP_UNTIL_UNITFINISHED; + spin radar around y-axis speed <120> accelerate <1>; + start-script Lights(); + call-script DishSpin(); +} + +#define BASEPIECE base +#define MAXTILT 0 +#include "../unit_hitbyweaponid_and_smoke.h" + +QueryNanoPiece(pieceIndex) +{ + spray = spray + 1; + if (spray >= 4) + { + spray = 0; + } + pieceIndex = flare1 + spray; +} + +DishSpin() +{ + show blink; + spin radar around y-axis speed <150>; +} + +DishStopSpin() +{ + hide blink; + spin radar around y-axis speed <0.0>; +} + +SetStunned(State) +{ + Stunned = State; + if (Stunned) { + hide blink; + call-script DishStopSpin(); + } else { + call-script DishSpin(); + } +} + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + FACTORY_OPEN_BUILD; +} + +Deactivate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + sleep 5000; + + turn nanorod_l to y-axis 0 speed <30>; + turn nanorod_r to y-axis 0 speed <30>; + + turn nano_l to z-axis 0 speed <30>; + turn nano_r to z-axis 0 speed <30>; + wait-for-turn nano_l around z-axis; + + FACTORY_CLOSE_BUILD; +} + +MoveCranes() +{ + while(TRUE) + { + turn nano_l to z-axis rand(-2500, 2500) speed <45>; + turn nanorod_l to y-axis rand(-8000, 1500) speed <45>; + // You can put emits here, you will need a point to spawn smoke from + // emit-sfx 257 from ventsmoke; + + sleep(800); + + turn nano_r to z-axis rand(-2500, 2500) speed <45>; + turn nanorod_r to y-axis rand(-1500, 8000) speed <45>; + + // emit-sfx 257 from ventsmoke; + sleep(800); + } +} + +Lights() +{ + while( TRUE ) + { + if (!Stunned) { + emit-sfx 1024 + 0 from blink; + } + sleep 2500; + } + sleep 50; + start-script Lights(); +} + + +StartBuilding() +{ + show flare1; + show flare2; + show flare3; + show flare4; + + show cagelight1_emit; + move cagelight1 to y-axis [2] speed [8]; + spin cagelight1_emit around y-axis speed <200> accelerate <1>; + + signal SIGNAL_BUILD; + set-signal-mask SIGNAL_BUILD; + start-script MoveCranes(); +} + +StopBuilding() +{ + hide flare1; + hide flare2; + hide flare3; + hide flare4; + + hide cagelight1_emit; + move cagelight1 to y-axis [0] speed [8]; + stop-spin cagelight1_emit around y-axis decelerate <1>; + + signal SIGNAL_BUILD; +} + +QueryBuildInfo(pieceIndex) +{ + pieceIndex = pad; +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type BITMAPONLY | NOHEATCLOUD; + explode nanorod_r type BITMAPONLY | NOHEATCLOUD; + explode nano_l type BITMAPONLY | NOHEATCLOUD; + explode nano_r type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanorod_r type FALL | NOHEATCLOUD; + explode nano_l type FALL | NOHEATCLOUD; + explode nano_r type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nanorod_r type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nano_l type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano_r type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode radar type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanorod_r type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nano_l type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nano_r type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legap.cob b/scripts/Units/legap.cob new file mode 100644 index 00000000000..19019018538 Binary files /dev/null and b/scripts/Units/legap.cob differ diff --git a/scripts/Units/legatorpbomber.bos b/scripts/Units/legatorpbomber.bos new file mode 100644 index 00000000000..dddacfb7956 --- /dev/null +++ b/scripts/Units/legatorpbomber.bos @@ -0,0 +1,178 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece chassis, launcher, launcher2, torpflare1, torpflare2, leftAJet, leftBJet, rightAJet, rightBJet, mainWing, leftWing, rightWing; + +//#define SIGNAL_TURNON 4 + +#define BASEPIECE chassis +#define HITSPEED <35.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 3 +#define MAXTILT 100 + +// #define BARRELROLL_PIECE chassis +// #define BARRELROLLSPEEED <200> +// #include "../air_barrelroll.h" + +static-var statechg_DesiredState, statechg_StateChanging; + +activatescr() +{ + if( TRUE ) + { + turn rightWing to y-axis <0> speed <45>; + turn leftWing to y-axis <0> speed <45>; + + } + sleep 12; +} + +deactivatescr() +{ + if( TRUE ) + { + turn rightWing to y-axis <45> speed <45>; + turn leftWing to y-axis <-45> speed <45>; + } + sleep 33; +} + +InitState() +{ + statechg_DesiredState = TRUE; + statechg_StateChanging = FALSE; +} + +RequestState(requestedstate, currentstate) +{ + if( statechg_StateChanging ) + { + statechg_DesiredState = requestedstate; + return (0); + } + statechg_StateChanging = TRUE; + currentstate = statechg_DesiredState; + statechg_DesiredState = requestedstate; + while( statechg_DesiredState != currentstate ) + { + if( statechg_DesiredState == 0 ) + { + call-script activatescr(); + currentstate = 0; + } + if( statechg_DesiredState == 1 ) + { + call-script deactivatescr(); + currentstate = 1; + } + } + statechg_StateChanging = FALSE; +} + +Create() +{ + + hide torpflare1; + hide torpflare2; + hide leftAJet; + hide leftBJet; + hide rightAJet; + hide rightBjet; + call-script InitState(); + turn rightWing to y-axis <45> now; + turn leftWing to y-axis <-45> now; + while( get BUILD_PERCENT_LEFT ) + { + sleep 100; + } + call-script activatescr(); +} + +Activate() +{ + show leftAJet; + show leftBJet; + show rightAJet; + show rightBjet; + start-script RequestState(0); +} + +Deactivate() +{ + hide leftAJet; + hide leftBJet; + hide rightAJet; + hide rightBjet; + start-script RequestState(1); +} + +SweetSpot(piecenum) +{ + piecenum = chassis; +} + +FireWeapon1() +{ + turn launcher to x-axis <10> speed <10>; + sleep 1000; + turn launcher to x-axis <0> speed <10>; + return (1); +} + +QueryWeapon1(pieceIndex) +{ + pieceIndex = torpflare1; +} + +FireWeapon2() +{ + turn launcher2 to x-axis <10> speed <10>; + sleep 1000; + turn launcher2 to x-axis <0> speed <10>; + return (1); +} + +QueryWeapon2(pieceIndex) +{ + pieceIndex = torpflare2; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type BITMAPONLY | NOHEATCLOUD; + explode rightWing type BITMAPONLY | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type FALL | NOHEATCLOUD; + explode rightWing type FALL | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode rightWing type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rightWing type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legatorpbomber.cob b/scripts/Units/legatorpbomber.cob new file mode 100644 index 00000000000..fd630351028 Binary files /dev/null and b/scripts/Units/legatorpbomber.cob differ diff --git a/scripts/Units/legatorpbomber_clean.bos b/scripts/Units/legatorpbomber_clean.bos new file mode 100644 index 00000000000..fafd3b8ec76 --- /dev/null +++ b/scripts/Units/legatorpbomber_clean.bos @@ -0,0 +1,105 @@ + +#include "../recoil_common_includes.h" + +piece chassis, launcher, torpflare, leftAJet, leftBJet, rightAJet, rightBJet, mainWing, leftWing, rightWing, radarTilt, radar; + +#define SIGNAL_TURNON 4 + +#define BASEPIECE chassis +#define HITSPEED <105.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 3 +#define MAXTILT 100 + +// #define BARRELROLL_PIECE chassis +// #define BARRELROLLSPEEED <200> +// #include "../air_barrelroll.h" + + +Create() +{ + turn rightWing to y-axis <45> now; + turn leftWing to y-axis <-45> now; + turn radarTilt to x-axis <10> now; + hide torpflare; + hide leftAJet; + hide leftBJet; + hide rightAJet; + hide rightBjet; +} + +Activate() +{ + turn rightWing to y-axis <0> speed <15>; + turn leftWing to y-axis <0> speed <15>; + spin radar around y-axis speed <10> accelerate <1>; + show leftAJet; + show leftBJet; + show rightAJet; + show rightBjet; +} + +Deactivate() +{ + turn rightWing to y-axis <45> speed <45>; + turn leftWing to y-axis <-45> speed <45>; + stop-spin radar around y-axis decelerate <1>; + hide leftAJet; + hide leftBJet; + hide rightAJet; + hide rightBjet; +} + +FirePrimary() +{ + turn launcher to x-axis <10> speed <10>; + sleep 1000; + turn launcher to x-axis <0> speed <10>; + return (1); +} + +QueryWeapon1(pieceIndex) +{ + pieceIndex = torpflare; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type BITMAPONLY | NOHEATCLOUD; + explode rightWing type BITMAPONLY | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + explode radar type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type FALL | NOHEATCLOUD; + explode rightWing type FALL | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + explode radar type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode rightWing type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + explode radar type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode mainWing type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rightWing type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode leftWing type BITMAPONLY | NOHEATCLOUD; + explode radar type BITMAPONLY | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legatorpbomber_clean.cob b/scripts/Units/legatorpbomber_clean.cob new file mode 100644 index 00000000000..b32c599b39b Binary files /dev/null and b/scripts/Units/legatorpbomber_clean.cob differ diff --git a/scripts/Units/legavjam.bos b/scripts/Units/legavjam.bos new file mode 100644 index 00000000000..5b7e5a82c53 --- /dev/null +++ b/scripts/Units/legavjam.bos @@ -0,0 +1,187 @@ + +#include "../recoil_common_includes.h" + +//piece base, dish, turret, eye, fwheel, rwheel; +piece chassis, dishBase, lTrack, rTrack, trackGuards, dishA, dishB, dishC, dishD, cloaklight, pointlight1, pointlight2; + +static-var recently_damaged, desired_activation; + +#define SIGNAL_MOVE 1 +#define SIGNAL_TURNON 4 +#define SIGNAL_OFF 8 + +#define BASEPIECE chassis +#define HITSPEED <55.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 2 +#define MAXTILT 100 +#include "../unit_hitbyweaponid_and_smoke.h" + + +#define TB_BASE chassis +#define TB_TURNRATE <20.0> +#define TB_TILT_X <0.15> +#define TB_BANK_Z <0.15> // Do not define this if you dont want banking +#include "../tilt_bank_mobileunit.h" + +Create() +{ + hide cloaklight; + hide pointlight1; + hide pointlight2; + + move dishA to x-axis [1] now; + move dishA to z-axis [-1] now; + move dishB to x-axis [1] now; + move dishB to z-axis [1] now; + move dishC to x-axis [-1] now; + move dishC to z-axis [1] now; + move dishD to x-axis [-1] now; + move dishD to z-axis [-1] now; + + recently_damaged = 0; + desired_activation = 1; + call-script TB_Init(); + SLEEP_UNTIL_UNITFINISHED; + start-script DamagedSmoke(); + + show cloaklight; + show pointlight1; + show pointlight2; + + move dishA to x-axis [0] speed [3]; + move dishA to z-axis [0] speed [3]; + move dishB to x-axis [0] speed [3]; + move dishB to z-axis [0] speed [3]; + move dishC to x-axis [0] speed [3]; + move dishC to z-axis [0] speed [3]; + move dishD to x-axis [0] speed [3]; + move dishD to z-axis [0] speed [3]; + + spin dishBase around y-axis speed <75> accelerate <1>; + +} +StartMoving(reversing) +{ + signal SIGNAL_MOVE; + set-signal-mask SIGNAL_MOVE; + START_TILTBANK; +} + +StopMoving() +{ + signal SIGNAL_MOVE; + STOP_TILTBANK; +} + + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + desired_activation = 1; + // if we are in this function, the unit is already on + // implied set ACTIVATION to 1; + // turn off if unit is in the recently_damaged state + // this turn off action calls the Deactivate function + if( recently_damaged == 1) + { + set ACTIVATION to 0; + return(0); + } + spin dishBase around y-axis speed <75> accelerate <1>; + show cloaklight; + show pointlight1; + show pointlight2; + return (0); +} + +Deactivate() +{ + // get PRINT(0, desired_activation,desired_activation,get GAME_FRAME); + // no easy way to tell if an on-off action is + // script/gadget controlled or user controlled + // assume a deactivate command is a user command + // if the unit has not been recently damaged + // However, we need to wait a few frames, + // unit_paralyze_on_off deactivates this unit before it is + // stunned, so it is actually turned off, but we need to wait to see if the + // unit is "damaged" by stun. + sleep 100; + if (recently_damaged == 0) + { + //set desired state if deactivated and not recently damaged + desired_activation = 0; + } + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + hide cloaklight; + hide pointlight1; + hide pointlight2; + stop-spin dishBase around y-axis decelerate <2>; + return (0); +} + +static-var Stunned; +SetStunned(State) +{ + Stunned = State; + if (Stunned) { + start-script Deactivate(); + } else { + set ACTIVATION to desired_activation; + } +} + +OffOnHit() +{ + signal SIGNAL_OFF; + set-signal-mask SIGNAL_OFF; + recently_damaged = 1; + set ACTIVATION to 0; // turn off unit + sleep 8000; //hardcoded time to stay off after being hit + recently_damaged = 0; + set ACTIVATION to desired_activation; +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode dishA type BITMAPONLY | NOHEATCLOUD; + explode dishB type BITMAPONLY | NOHEATCLOUD; + explode dishBase type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode dishA type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishB type FALL | NOHEATCLOUD; + explode dishC type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishBase type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode chassis type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishA type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishB type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode dishC type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishBase type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode chassis type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishA type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode dishB type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode dishC type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode dishBase type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legavjam.cob b/scripts/Units/legavjam.cob new file mode 100644 index 00000000000..ee43c04d8ce Binary files /dev/null and b/scripts/Units/legavjam.cob differ diff --git a/scripts/Units/legavp.bos b/scripts/Units/legavp.bos new file mode 100644 index 00000000000..e35082f8aeb --- /dev/null +++ b/scripts/Units/legavp.bos @@ -0,0 +1,420 @@ +#include "../recoil_common_includes.h" +#include "../factories_common.h" + +piece base, + buildlightLBase, buildlightL, buildlightRBase, buildlightR, buildlightLPoint, buildlightRPoint, + cannisterLight, cannisterLight2, cannisterLight3, pipeLight1, pipeLight2, smokePoint, + doorA, platformA1, paltformA2, + doorB, platformB1, platformB2, + doorC, platformC1, platformC2, + doorD, + gateL1, nanoarmL1, nanoL1, + gateL2, nanoarmL2, nanoL2, + gateL3, nanoarmL3, nanoL3, + gateR1, nanoarmR1, nanoR1, + gateR2, nanoarmR2, nanoR2, + gateR3, nanoarmR3, nanoR3, + sprayL1A, sprayL2A, sprayL3A, sprayR1A, sprayR2A, sprayR3A, + sprayL1B, sprayL2B, sprayL3B, sprayR1B, sprayR2B, sprayR3B, + pad; + +static-var spray, issmoking; + +// Signal definitions +#define SIGNAL_BUILD 2 +#define SIGNAL_TURNON 4 + +SmokeItUp() +{ while (TRUE) { + emit-sfx 258 from smokePoint; + sleep 45; + emit-sfx 258 from smokePoint; + sleep 500; +} + +} + +Create() +{ + hide buildlightLPoint; + hide buildlightRPoint; + hide cannisterLight; + hide cannisterLight2; + hide cannisterLight3; + hide pipeLight1; + hide pipeLight2; + hide smokePoint; + + hide sprayL1A; + hide sprayL1B; + hide sprayL2A; + hide sprayL2B; + hide sprayL3A; + hide sprayL3B; + hide sprayR1A; + hide sprayR1B; + hide sprayR2A; + hide sprayR2B; + hide sprayR3A; + hide sprayR3B; + + issmoking = 0; + spray = 0; + + move buildLightL to y-axis [-2] now; + move buildLightR to y-axis [-2] now; + + move gateL1 to y-axis [5] now; + move gateL2 to y-axis [5] now; + move gateL3 to y-axis [5] now; + + move gateR1 to y-axis [5] now; + move gateR2 to y-axis [5] now; + move gateR3 to y-axis [5] now; + + move doorA to y-axis [-10] now; + move doorB to y-axis [-10] now; + move doorC to y-axis [-10] now; + move doorD to y-axis [-10] now; + + SLEEP_UNTIL_UNITFINISHED; + + move gateR1 to y-axis [0] speed [2.5]; + move gateL1 to y-axis [0] speed [2.5]; + move doorA to y-axis [0] speed [5]; + sleep 100; + move gateR2 to y-axis [0] speed [2.5]; + move gateL2 to y-axis [0] speed [2.5]; + move doorB to y-axis [0] speed [5]; + sleep 100; + move gateR3 to y-axis [0] speed [2.5]; + move gateL3 to y-axis [0] speed [2.5]; + move doorC to y-axis [0] speed [5]; + sleep 100; + move doorD to y-axis [0] speed [5]; + + + + +} + + +#define BASEPIECE base +#define MAXTILT 0 +#include "../unit_hitbyweaponid_and_smoke.h" + +QueryNanoPiece(pieceIndex) +{ + spray = (spray + 1) % 12; + pieceIndex = sprayL1A + spray; +} + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + + move gateL1 to y-axis [15] speed [75]; + move gateL2 to y-axis [15] speed [75]; + move gateL3 to y-axis [15] speed [75]; + + move gateR1 to y-axis [15] speed [75]; + move gateR2 to y-axis [15] speed [75]; + move gateR3 to y-axis [15] speed [75]; + + wait-for-move gateR3 along y-axis; + + turn gateR1 to z-axis <-70> speed <200>; + turn gateL1 to z-axis <70> speed <200>; + sleep 50; + turn gateR2 to z-axis <-70> speed <200>; + turn gateL2 to z-axis <70> speed <200>; + sleep 50; + turn gateR3 to z-axis <-70> speed <200>; + turn gateL3 to z-axis <70> speed <200>; + + sleep 50; + + move doorA to y-axis [-31] speed [130]; + sleep 50; + move doorB to y-axis [-31] speed [130]; + sleep 50; + move doorC to y-axis [-31] speed [130]; + sleep 50; + move doorD to y-axis [-31] speed [130]; + + wait-for-move doorD along y-axis; + + move platformA1 to z-axis [-6] speed [65]; + move paltformA2 to z-axis [-6] speed [65]; + sleep 50; + move platformB1 to z-axis [-6] speed [65]; + move platformB2 to z-axis [-6] speed [65]; + sleep 50; + move platformC1 to z-axis [-6] speed [65]; + move platformC2 to z-axis [-6] speed [65]; + + wait-for-turn gateL3 around z-axis; + + move buildLightL to y-axis [0] speed [1]; + move buildLightR to y-axis [0] speed [1]; + + turn nanoarmR1 to z-axis <60> speed <65>; + turn nanoarmL1 to z-axis <-60> speed <65>; + sleep 10; + turn nanoarmR2 to z-axis <60> speed <65>; + turn nanoarmL2 to z-axis <-60> speed <65>; + sleep 10; + turn nanoarmR3 to z-axis <60> speed <65>; + turn nanoarmL3 to z-axis <-60> speed <65>; + sleep 50; + + FACTORY_OPEN_BUILD; + spin buildLightL around y-axis speed <200> accelerate <2>; + spin buildLightR around y-axis speed <200> accelerate <2>; + + show buildlightLPoint; + show buildlightRPoint; + show cannisterLight; + show cannisterLight2; + show cannisterLight3; + show pipeLight1; + show pipeLight2; + show sprayL1A; + show sprayL2A; + show sprayL3A; + show sprayR1A; + show sprayR2A; + show sprayR3A; +} + +Deactivate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + + sleep 5000; + + turn nanoarmR3 to z-axis <0> speed <45>; + sleep 25; + turn nanoarmL3 to z-axis <0> speed <45>; + sleep 25; + turn nanoarmR2 to z-axis <0> speed <45>; + sleep 25; + turn nanoarmL2 to z-axis <0> speed <45>; + sleep 25; + turn nanoarmR1 to z-axis <0> speed <45>; + sleep 25; + turn nanoarmL1 to z-axis <0> speed <45>; + sleep 25; + wait-for-turn nanoarmL1 around z-axis; + + move platformC1 to z-axis [0] speed [25]; + sleep 25; + move platformC2 to z-axis [0] speed [25]; + sleep 25; + move platformB1 to z-axis [0] speed [25]; + sleep 25; + move platformB2 to z-axis [0] speed [25]; + sleep 25; + move platformA1 to z-axis [0] speed [25]; + sleep 25; + move paltformA2 to z-axis [0] speed [25]; + sleep 25; + wait-for-move paltformA2 along z-axis; + + move doorD to y-axis [0] speed [40]; + sleep 50; + move doorC to y-axis [0] speed [40]; + sleep 50; + move doorB to y-axis [0] speed [40]; + sleep 50; + move doorA to y-axis [0] speed [40]; + //wait-for-move doorA along y-axis; + + turn gateR1 to z-axis <0> speed <90>; + turn gateL1 to z-axis <0> speed <90>; + sleep 25; + turn gateR2 to z-axis <0> speed <90>; + turn gateL2 to z-axis <0> speed <90>; + sleep 25; + turn gateR3 to z-axis <0> speed <90>; + turn gateL3 to z-axis <0> speed <90>; + wait-for-turn gateL3 around z-axis; + + move buildLightL to y-axis [-2] speed [2]; + move buildLightR to y-axis [-2] speed [2]; + + move gateL1 to y-axis [0] speed [15]; + move gateR1 to y-axis [0] speed [15]; + sleep 25; + move gateL2 to y-axis [0] speed [15]; + move gateR2 to y-axis [0] speed [15]; + sleep 25; + move gateL3 to y-axis [0] speed [15]; + move gateR3 to y-axis [0] speed [15]; + + FACTORY_CLOSE_BUILD; +} + +MoveCranes() +{ + while(TRUE) + { + spin buildLightL around y-axis speed <200> accelerate <2>; + spin buildLightR around y-axis speed <200> accelerate <2>; + turn nanoarmR1 to z-axis <15> speed <20>; + sleep 200; + turn nanoarmL1 to z-axis <-15> speed <20>; + sleep 200; + turn nanoarmR2 to z-axis <15> speed <20>; + sleep 200; + turn nanoarmL2 to z-axis <-15> speed <20>; + sleep 200; + turn nanoarmR3 to z-axis <15> speed <20>; + sleep 200; + turn nanoarmL3 to z-axis <-15> speed <20>; + wait-for-turn nanoarmR1 around z-axis; + turn nanoarmR1 to z-axis <60> speed <20>; + sleep 200; + turn nanoarmL1 to z-axis <-60> speed <20>; + sleep 200; + turn nanoarmR2 to z-axis <60> speed <20>; + sleep 200; + turn nanoarmL2 to z-axis <-60> speed <20>; + sleep 200; + turn nanoarmR3 to z-axis <60> speed <20>; + sleep 200; + turn nanoarmL3 to z-axis <-60> speed <20>; + wait-for-turn nanoarmR1 around z-axis; + } +} + + +StartBuilding() +{ + show buildlightLPoint; + show buildlightRPoint; + show cannisterLight; + show cannisterLight2; + show cannisterLight3; + show pipeLight1; + show pipeLight2; + show sprayL1A; + show sprayL2A; + show sprayL3A; + show sprayR1A; + show sprayR2A; + show sprayR3A; + signal SIGNAL_BUILD; + set-signal-mask SIGNAL_BUILD; + wait-for-turn nanoarmR1 around z-axis; + sleep 250; + start-script MoveCranes(); + start-script SmokeItUp(); +} + +StopBuilding() +{ + + hide buildlightLPoint; + hide buildlightRPoint; + hide cannisterLight; + hide cannisterLight2; + hide cannisterLight3; + hide pipeLight1; + hide pipeLight2; + hide sprayL1A; + hide sprayL2A; + hide sprayL3A; + hide sprayR1A; + hide sprayR2A; + hide sprayR3A; + + stop-spin buildLightL around y-axis decelerate <2>; + stop-spin buildLightR around y-axis decelerate <2>; + + signal SIGNAL_BUILD; + + /* + set BUGGER_OFF to 1; // tell units to get out of here + set INBUILDSTANCE to 0; // we turn it off, to wait for the unit to clear the build pad (large aircraft) + sleep 500; // then we wait for 0.5 sec + set INBUILDSTANCE to 1; // we turn it on again, as the next startbuilding and construction will begin when this is 1 again. + set BUGGER_OFF to 0; // ok now we dont mind if they are here + */ +} + +QueryBuildInfo(pieceIndex) +{ + pieceIndex = pad; +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + // explode base type BITMAPONLY | NOHEATCLOUD; + // explode doorl type FIRE | SMOKE | FALL | BITMAPONLY | NOHEATCLOUD; + // explode nano1 type BITMAPONLY | NOHEATCLOUD; + // explode nano2 type BITMAPONLY | NOHEATCLOUD; + // explode nano3 type BITMAPONLY | NOHEATCLOUD; + // explode nano4 type BITMAPONLY | NOHEATCLOUD; + // explode doorr type BITMAPONLY | NOHEATCLOUD; + // explode nano5 type BITMAPONLY | NOHEATCLOUD; + // explode nano6 type BITMAPONLY | NOHEATCLOUD; + // explode nano7 type BITMAPONLY | NOHEATCLOUD; + // explode nano8 type BITMAPONLY | NOHEATCLOUD; + // explode pad type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + // explode base type BITMAPONLY | NOHEATCLOUD; + // explode nano1 type FALL | NOHEATCLOUD; + // explode nano2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano3 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano4 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano5 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano6 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano7 type FALL | NOHEATCLOUD; + // explode nano8 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode pad type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + // explode base type BITMAPONLY | NOHEATCLOUD; + // explode doorl type BITMAPONLY | NOHEATCLOUD; + // explode nano1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano3 type FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano4 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode doorr type BITMAPONLY | NOHEATCLOUD; + // explode nano5 type SMOKE | FALL | NOHEATCLOUD; + // explode nano6 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano7 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano8 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode pad type SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + // explode base type BITMAPONLY | NOHEATCLOUD; + // explode doorl type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + // explode nano3 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + // explode nano4 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + // explode doorr type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano5 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano6 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano7 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode nano8 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + // explode pad type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legavp.cob b/scripts/Units/legavp.cob new file mode 100644 index 00000000000..3b793e05227 Binary files /dev/null and b/scripts/Units/legavp.cob differ diff --git a/scripts/Units/legavrad.bos b/scripts/Units/legavrad.bos new file mode 100644 index 00000000000..98cf097c416 --- /dev/null +++ b/scripts/Units/legavrad.bos @@ -0,0 +1,293 @@ + +#include "../recoil_common_includes.h" + +//piece base, dish, turret, eye, fwheel, rwheel; +piece chassis, dishTower, + dishAStrut, dishA, dishATop1, dishATop2, dishABot1, dishABot2, + dishBStrut, dishB, dishBTop1, dishBTop2, dishBBot1, dishBBot2, + dishCStrut, dishC, dishCTop1, dishCTop2, dishCBot1, dishCBot2, + dishDStrut, dishD, dishDTop1, dishDTop2, dishDBot1, dishDBot2, + lTrack, rTrack, trackGuards, radarlight1, radarlight2, radarlight3, radarlight4; + +static-var Stunned; + +#define SIGNAL_MOVE 1 +#define SIGNAL_TURNON 4 + +#define BASEPIECE chassis +#define HITSPEED <55.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 2 +#define MAXTILT 100 +#include "../unit_hitbyweaponid_and_smoke.h" + + +#define TB_BASE chassis +#define TB_TURNRATE <20.0> +#define TB_TILT_X <0.15> +#define TB_BANK_Z <0.15> // Do not define this if you dont want banking +#include "../tilt_bank_mobileunit.h" + + +Lights() +{ + if (!Stunned) { + emit-sfx 1024 + 0 from dishAStrut; + } + sleep 2500; + start-script Lights(); +} + +Create() +{ + move dishATop2 to z-axis [1] now; + move dishABot2 to z-axis [1] now; + turn dishATop2 to x-axis <-30> now; + turn dishABot2 to x-axis <30> now; + move dishATop1 to z-axis [1] now; + move dishABot1 to z-axis [1] now; + turn dishATop1 to x-axis <-10> now; + turn dishABot1 to x-axis <10> now; + + move dishBTop2 to x-axis [-1] now; + move dishBBot2 to x-axis [-1] now; + turn dishBTop2 to z-axis <-30> now; + turn dishBBot2 to z-axis <30> now; + move dishBTop1 to x-axis [-1] now; + move dishBBot1 to x-axis [-1] now; + turn dishBTop1 to z-axis <-10> now; + turn dishBBot1 to z-axis <10> now; + + move dishCTop2 to z-axis [-1] now; + move dishCBot2 to z-axis [-1] now; + turn dishCTop2 to x-axis <30> now; + turn dishCBot2 to x-axis <-30> now; + move dishCTop1 to z-axis [-1] now; + move dishCBot1 to z-axis [-1] now; + turn dishCTop1 to x-axis <10> now; + turn dishCBot1 to x-axis <-10> now; + + move dishDTop2 to x-axis [1] now; + move dishDBot2 to x-axis [1] now; + turn dishDTop2 to z-axis <30> now; + turn dishDBot2 to z-axis <-30> now; + move dishDTop1 to x-axis [1] now; + move dishDBot1 to x-axis [1] now; + turn dishDTop1 to z-axis <10> now; + turn dishDBot1 to z-axis <-10> now; + + hide radarlight1; + hide radarlight2; + hide radarlight3; + hide radarlight4; + + call-script TB_Init(); + SLEEP_UNTIL_UNITFINISHED; + + turn dishATop1 to x-axis <0> speed <30>; + turn dishABot1 to x-axis <0> speed <30>; + sleep 100; + turn dishBTop1 to z-axis <0> speed <30>; + turn dishBBot1 to z-axis <0> speed <30>; + sleep 100; + turn dishCTop1 to x-axis <0> speed <30>; + turn dishCBot1 to x-axis <0> speed <30>; + sleep 100; + turn dishDTop1 to z-axis <0> speed <30>; + turn dishDBot1 to z-axis <0> speed <30>; + wait-for-turn dishABot1 around x-axis; + + move dishATop1 to z-axis [0] speed [3]; + move dishABot1 to z-axis [0] speed [3]; + sleep 100; + move dishBTop1 to x-axis [0] speed [3]; + move dishBBot1 to x-axis [0] speed [3]; + sleep 100; + move dishCTop1 to z-axis [0] speed [3]; + move dishCBot1 to z-axis [0] speed [3]; + sleep 100; + move dishDTop1 to x-axis [0] speed [3]; + move dishDBot1 to x-axis [0] speed [3]; + wait-for-move dishABot1 along z-axis; + + turn dishATop2 to x-axis <0> speed <30>; + turn dishABot2 to x-axis <0> speed <30>; + sleep 100; + turn dishBTop2 to z-axis <0> speed <30>; + turn dishBBot2 to z-axis <0> speed <30>; + sleep 100; + turn dishCTop2 to x-axis <0> speed <30>; + turn dishCBot2 to x-axis <0> speed <30>; + sleep 100; + turn dishDTop2 to z-axis <0> speed <30>; + turn dishDBot2 to z-axis <0> speed <30>; + wait-for-turn dishABot2 around x-axis; + + move dishATop2 to z-axis [0] speed [3]; + move dishABot2 to z-axis [0] speed [3]; + spin dishA around z-axis speed <-100> accelerate <1>; + sleep 200; + move dishBTop2 to x-axis [0] speed [3]; + move dishBBot2 to x-axis [0] speed [3]; + spin dishB around x-axis speed <-100> accelerate <1>; + sleep 200; + move dishCTop2 to z-axis [0] speed [3]; + move dishCBot2 to z-axis [0] speed [3]; + spin dishC around z-axis speed <-100> accelerate <1>; + sleep 100; + move dishDTop2 to x-axis [0] speed [3]; + move dishDBot2 to x-axis [0] speed [3]; + spin dishD around x-axis speed <-100> accelerate <1>; + wait-for-move dishABot2 along z-axis; + + spin dishTower around y-axis speed <100> accelerate <2>; + show radarlight1; + show radarlight2; + show radarlight3; + show radarlight4; + +} +StartMoving(reversing) +{ + signal SIGNAL_MOVE; + set-signal-mask SIGNAL_MOVE; + START_TILTBANK; +} + +StopMoving() +{ + signal SIGNAL_MOVE; + STOP_TILTBANK; +} + + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + + + + start-script Lights(); + return (0); +} + +Deactivate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + + stop-spin dishTower around y-axis decelerate <10>; + + move dishATop2 to z-axis [1] speed [3]; + move dishABot2 to z-axis [1] speed [3]; + turn dishATop2 to x-axis <-30> speed <30>; + turn dishABot2 to x-axis <30> speed <30>; + move dishATop1 to z-axis [1] speed [3]; + move dishABot1 to z-axis [1] speed [3]; + turn dishATop1 to x-axis <-10> speed <30>; + turn dishABot1 to x-axis <10> speed <30>; + + move dishBTop2 to x-axis [-1] speed [3]; + move dishBBot2 to x-axis [-1] speed [3]; + turn dishBTop2 to z-axis <-30> speed <30>; + turn dishBBot2 to z-axis <30> speed <30>; + move dishBTop1 to x-axis [-1] speed [3]; + move dishBBot1 to x-axis [-1] speed [3]; + turn dishBTop1 to z-axis <-10> speed <30>; + turn dishBBot1 to z-axis <10> speed <30>; + + move dishCTop2 to z-axis [-1] speed [3]; + move dishCBot2 to z-axis [-1] speed [3]; + turn dishCTop2 to x-axis <30> speed <30>; + turn dishCBot2 to x-axis <-30> speed <30>; + move dishCTop1 to z-axis [-1] speed [3]; + move dishCBot1 to z-axis [-1] speed [3]; + turn dishCTop1 to x-axis <10> speed <30>; + turn dishCBot1 to x-axis <-10> speed <30>; + + move dishDTop2 to x-axis [1] speed [3]; + move dishDBot2 to x-axis [1] speed [3]; + turn dishDTop2 to z-axis <30> speed <30>; + turn dishDBot2 to z-axis <-30> speed <30>; + move dishDTop1 to x-axis [1] speed [3]; + move dishDBot1 to x-axis [1] speed [3]; + turn dishDTop1 to z-axis <10> speed <30>; + turn dishDBot1 to z-axis <-10> speed <30>; + + hide radarlight1; + hide radarlight2; + hide radarlight3; + hide radarlight4; + + return (0); +} + +SetStunned(State) +{ + Stunned = State; + if (Stunned) { + stop-spin dishTower around y-axis decelerate <2>; + stop-spin dishA around z-axis decelerate <2>; + stop-spin dishB around x-axis decelerate <2>; + stop-spin dishC around z-axis decelerate <2>; + stop-spin dishD around x-axis decelerate <2>; + hide radarlight1; + hide radarlight2; + hide radarlight3; + hide radarlight4; + } else { + spin dishTower around y-axis speed <100> accelerate <1>; + spin dishA around z-axis speed <-100> accelerate <1>; + spin dishB around x-axis speed <-100> accelerate <1>; + spin dishC around z-axis speed <-100> accelerate <1>; + spin dishD around x-axis speed <-100> accelerate <1>; + show radarlight1; + show radarlight2; + show radarlight3; + show radarlight4; + + } +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode dishA type BITMAPONLY | NOHEATCLOUD; + explode dishB type BITMAPONLY | NOHEATCLOUD; + explode dishTower type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode chassis type BITMAPONLY | NOHEATCLOUD; + explode dishA type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishB type FALL | NOHEATCLOUD; + explode dishC type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishTower type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode chassis type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishA type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishB type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode dishC type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishTower type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode chassis type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode dishA type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode dishB type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode dishC type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode dishTower type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legavrad.cob b/scripts/Units/legavrad.cob new file mode 100644 index 00000000000..f5984601d92 Binary files /dev/null and b/scripts/Units/legavrad.cob differ diff --git a/scripts/Units/legcluster.bos b/scripts/Units/legcluster.bos index d8bb0ce7fb5..cacbac404f0 100644 --- a/scripts/Units/legcluster.bos +++ b/scripts/Units/legcluster.bos @@ -2,16 +2,15 @@ #include "sfxtype.h" #include "exptype.h" +#include "smart_weapon_select.h" -piece base, turret, sleeve, barrel, flare; +piece base, turret, sleeve, barrel, flare, turretmidpoint; //piece flare1, flare2, base, turret, barrel1, barrel2, sleeves; -static-var trajectoryMode, lastHeading; +static-var lastHeading; #define SIGNAL_AIM 1 -#define LOW_TRAJECTORY 0 -#define HIGH_TRAJECTORY 1 Create() @@ -22,22 +21,6 @@ Create() #define SMOKEPIECE base #include "smokeunit_thread_nohit.h" -RequestState(requestedState) -{ - trajectoryMode = requestedstate; -} - -Activate() -{ - signal SIGNAL_AIM; - start-script RequestState(HIGH_TRAJECTORY); -} - -Deactivate() -{ - signal SIGNAL_AIM; - start-script RequestState(LOW_TRAJECTORY); -} restoreAfterDelay() { @@ -78,7 +61,7 @@ aimCommon(heading, pitch) AimPrimary(heading, pitch) { - if( trajectoryMode != LOW_TRAJECTORY ) + if (AimingState != AIMING_PRIORITY) { return(0); } @@ -87,7 +70,7 @@ AimPrimary(heading, pitch) set-signal-mask SIGNAL_AIM; call-script aimCommon(heading, pitch); - // Prevent low-trajectory "bonus shots" while high-trajectory is reloading + // Prevent "bonus shots" while alternative weapon is reloading var reloading; reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(2)); if( reloading ) @@ -100,17 +83,31 @@ AimPrimary(heading, pitch) AimSecondary(heading, pitch) { - if( trajectoryMode != HIGH_TRAJECTORY ) + if (AimingState != AIMING_BACKUP) { return(0); } - + signal SIGNAL_AIM; set-signal-mask SIGNAL_AIM; call-script aimCommon(heading, pitch); + + // Prevent "bonus shots" while alternative weapon is reloading + var reloading; + reloading = (get GAME_FRAME) < (get WEAPON_RELOADSTATE(1)); + if( reloading ) + { + return(0); + } + return (1); } +AimTertiary(piecenum) +{ + return (0); +} + AimFromPrimary(piecenum) { piecenum = sleeve; @@ -149,6 +146,11 @@ QuerySecondary(piecenum) piecenum = flare; } +QueryTertiary(piecenum) +{ + piecenum = turretmidpoint; +} + SweetSpot(piecenum) { piecenum = base; diff --git a/scripts/Units/legcluster.cob b/scripts/Units/legcluster.cob index ee1ef69fee8..87264189c49 100644 Binary files a/scripts/Units/legcluster.cob and b/scripts/Units/legcluster.cob differ diff --git a/scripts/Units/legerailtank.bos b/scripts/Units/legerailtank.bos new file mode 100644 index 00000000000..a4181cd3135 --- /dev/null +++ b/scripts/Units/legerailtank.bos @@ -0,0 +1,488 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece base, leftATurretBase, leftATurret, leftAGun, leftAFlare, //5 + leftBTurretBase, leftBTurret, leftBGun, leftBFlare, //9 + rightATurretBase, rightATurret, rightAGun, rightAFlare, //13 + rightBTurretBase, rightBTurret, rightBGun, rightBFlare, //17 + tracks, trackGuards, railTurretBase, railTurret, //21 + railBotLeft, railBotMid, rightRailFlare, //24 + railBotRight, railTopLeft, midRailFlare, //27 + railTopMid, railTopRight, leftRailFlare, aimpoint; //30 + +static-var restore_delay, last_gun_heading, guncount, + wpn2_lasthead, wpn3_lasthead, wpn4_lasthead, wpn5_lasthead; + + +// Signal definitions +#define SIG_AIM 2 +#define SIG_AIM_2 4 +#define SIG_AIM_3 8 +#define SIG_AIM_4 16 +#define SIG_AIM_5 32 +#define SIG_FIRE1 64 +#define SIG_FIRE2 128 +#define SIG_FIRE3 256 +#define SIG_FIRE4 512 +#define SIG_FIRE5 1024 + +#define BASEPIECE base +#define HITSPEED <85.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 9 +#define MAXTILT 100 + +StartMoving() +{ + turn base to x-axis <-3> speed <11>; + wait-for-turn base around x-axis; + turn base to x-axis <0> speed <11>; +} + +StopMoving() +{ + turn base to x-axis <1> speed <5>; + wait-for-turn base around x-axis; + turn base to x-axis <0> speed <5>; +} + +Create() +{ + hide leftAFlare; + hide leftBFlare; + hide rightAFlare; + hide rightBFlare; + + hide leftRailFlare; + hide rightRailFlare; + hide midRailFlare; + restore_delay = 3000; + + turn rightATurretBase to y-axis <90> now; + turn rightBTurretBase to y-axis <90> now; + turn leftATurretBase to y-axis <-90> now; + turn leftBTurretBase to y-axis <-90> now; + + move railTopLeft to z-axis [1] now; + move railTopRight to z-axis [1] now; + move railTopMid to z-axis [1] now; + + move railTopLeft to y-axis [-1] now; + move railTopRight to y-axis [-1] now; + move railTopMid to y-axis [-1] now; + + move railBotLeft to z-axis [1] now; + move railBotRight to z-axis [1] now; + move railBotMid to z-axis [1] now; + + move railBotLeft to y-axis [1] now; + move railBotRight to y-axis [1] now; + move railBotMid to y-axis [1] now; + + + guncount = 24; +} + +SetMaxReloadTime(Func_Var_1) +{ + restore_delay = Func_Var_1 * 2; +} + +static-var Stunned; +ExecuteRestoreAfterDelay() +{ + if (Stunned) { + return (1); + } + set-signal-mask 0; + + turn railTurretBase to y-axis <0> speed <45>; + turn railTurret to x-axis <0> speed <20>; + + turn rightATurretBase to y-axis <90> speed <90>; + turn rightBTurretBase to y-axis <90> speed <90>; + turn leftATurretBase to y-axis <-90> speed <90>; + turn leftBTurretBase to y-axis <-90> speed <90>; + + turn leftATurret to z-axis <0> speed <45>; + turn rightATurret to z-axis <0> speed <45>; + turn leftBTurret to z-axis <0> speed <45>; + turn rightBTurret to z-axis <0> speed <45>; + + + + stop-spin leftAGun around x-axis decelerate <10.000000>; + stop-spin leftBGun around x-axis decelerate <10.000000>; + stop-spin rightAGun around x-axis decelerate <10.000000>; + stop-spin rightBGun around x-axis decelerate <10.000000>; + + guncount = 24; + + + + //guncount = 1; +} +SetStunned(State) +{ + Stunned = State; + if (!Stunned) { + start-script ExecuteRestoreAfterDelay(); + } +} +RestoreAfterDelay() +{ + sleep restore_delay; + start-script ExecuteRestoreAfterDelay(); +} + +RestoreAfterDelay2() +{ + sleep restore_delay; + stop-spin leftAGun around x-axis decelerate <10.000000>; + stop-spin leftBGun around x-axis decelerate <10.000000>; + stop-spin rightAGun around x-axis decelerate <10.000000>; + stop-spin rightBGun around x-axis decelerate <10.000000>; +} + + +AimPrimary(heading, pitch) +{ + signal SIG_AIM; + set-signal-mask SIG_AIM; + turn railTurretBase to y-axis heading speed <30.000000>; + turn railTurret to x-axis <0.000000> - pitch speed <15.000000>; + wait-for-turn railTurretBase around y-axis; + wait-for-turn railTurret around x-axis; + start-script RestoreAfterDelay(); + last_gun_heading = heading; + return (1); +} + +Rock_Main_Cannon() +{ + turn base to z-axis <0> - (GET KSIN(last_gun_heading)) speed <50.005495>; + turn base to x-axis <0> - (GET KCOS(last_gun_heading)) speed <50.005495>; + wait-for-turn base around z-axis; + wait-for-turn base around x-axis; + turn base to z-axis <0.000000> speed <20.000000>; + turn base to x-axis <0.000000> speed <20.000000>; +} + +FirePrimary() +{ + //call-script Rock_Main_Cannon(); + return(0); + + move railTopLeft to z-axis [1] now; + + move railTopMid to z-axis [1] now; + + move railTopLeft to y-axis [-1] now; + + move railTopMid to y-axis [-1] now; + + move railBotLeft to z-axis [1] now; + move railBotRight to z-axis [1] now; + move railBotMid to z-axis [1] now; + + move railBotLeft to y-axis [1] now; + move railBotRight to y-axis [1] now; + move railBotMid to y-axis [1] now; + +} + +Shot1(zero){ + signal SIG_FIRE5; + set-signal-mask SIG_FIRE5; + if(guncount == 24){ + emit-sfx 1024 + 0 from rightRailFlare; + move railTopRight to y-axis [0] now; + move railTopRight to z-axis [0] now; + move railBotRight to y-axis [0] now; + move railBotRight to z-axis [0] now; + guncount = 27; + call-script Rock_Main_Cannon(); + move railTopRight to y-axis [-1] speed [1]; + move railTopRight to z-axis [1] speed [1]; + move railBotRight to y-axis [1] speed [1]; + move railBotRight to z-axis [1] speed [1]; + sleep 330; + } + if(guncount == 27){ + emit-sfx 1024 + 0 from midRailFlare; + move railTopMid to y-axis [0] now; + move railTopMid to z-axis [0] now; + move railBotMid to y-axis [0] now; + move railBotMid to z-axis [0] now; + guncount = 30; + call-script Rock_Main_Cannon(); + move railTopMid to y-axis [-1] speed [1]; + move railTopMid to z-axis [1] speed [1]; + move railBotMid to y-axis [1] speed [1]; + move railBotMid to z-axis [1] speed [1]; + sleep 330; + + } + if(guncount == 30){ + emit-sfx 1024 + 0 from leftRailFlare; + move railTopLeft to y-axis [0] now; + move railTopLeft to z-axis [0] now; + move railBotLeft to y-axis [0] now; + move railBotLeft to z-axis [0] now; + guncount = 24; + call-script Rock_Main_Cannon(); + move railTopLeft to y-axis [-1] speed [1]; + move railTopLeft to z-axis [1] speed [1]; + move railBotLeft to y-axis [1] speed [1]; + move railBotLeft to z-axis [1] speed [1]; + sleep 330; + + } +} + +AimFromPrimary(piecenum) +{ + piecenum = aimpoint; + return (0); +} + +QueryPrimary(piecenum) +{ + // if(guncount == 27){ + // piecenum = leftRailFlare; + // } + // else piecenum = guncount - 3; + + if(guncount == 27){ + piecenum = rightRailFlare; + } + else if (guncount == 30){ + piecenum = midRailFlare; + } + else if (guncount == 24){ + piecenum = leftRailFlare; + } + + //return (0); +} + +///////////////////////////////////////////////////////////////////////// + +AimWeapon2(heading, pitch) +{ + signal SIG_AIM_2; + set-signal-mask SIG_AIM_2; + + if ((heading + <33.02>) > <-117.5> AND (heading + <33.02>) < <117.5>){ + turn rightATurret to z-axis <0.000000> + pitch speed <50.000000>; + turn rightATurretBase to y-axis heading + <90> speed <100.000000>; + wait-for-turn rightATurret around x-axis; + wait-for-turn rightATurretBase around y-axis; + start-script RestoreAfterDelay2(); + return (1); + } + else return(0); + +} + +FireWeapon2() +{ + spin rightAGun around x-axis speed <-900.000000>; + return (1); +} + +Shot2(zero) +{ + signal SIG_FIRE1; + set-signal-mask SIG_FIRE1; + emit-sfx 1024 + 1 from rightAFlare; + return(1); +} + +AimFromWeapon2(piecenum) +{ + piecenum = rightATurret; +} + +QueryWeapon2(piecenum) +{ + piecenum = rightAFlare; +} + +AimWeapon3(heading, pitch) +{ + signal SIG_AIM_3; + set-signal-mask SIG_AIM_3; + + if ((heading + <73.3>) > <-100> AND (heading + <73.3>) < <100>){ + turn rightBTurret to z-axis <0.000000> + pitch speed <50.000000>; + turn rightBTurretBase to y-axis heading + <90> speed <100.000000>; + wait-for-turn rightBTurret around x-axis; + wait-for-turn rightBTurretBase around y-axis; + start-script RestoreAfterDelay2(); + return (1); + } + else return(0); + + + +} + +FireWeapon3() +{ + spin rightBGun around x-axis speed <-900.000000>; + return (1); +} + +Shot3(zero) +{ + signal SIG_FIRE2; + set-signal-mask SIG_FIRE2; + emit-sfx 1024 + 1 from rightBFlare; + return(1); +} + +AimFromWeapon3(piecenum) +{ + piecenum = rightBTurret; +} + +QueryWeapon3(piecenum) +{ + piecenum = rightBFlare; +} +//////////////////////////////////////////////////// + +AimWeapon4(heading, pitch) +{ + signal SIG_AIM_4; + set-signal-mask SIG_AIM_4; + + if ((heading - <33.02>) > <-117.5> AND (heading - <33.02>) < <117.5>){ + turn leftATurret to z-axis <0.000000> - pitch speed <50.000000>; + turn leftATurretBase to y-axis heading - <90> speed <100.000000>; + wait-for-turn leftATurret around x-axis; + wait-for-turn leftATurretBase around y-axis; + start-script RestoreAfterDelay2(); + return (1); + } + else return(0); + + +} + +FireWeapon4() +{ + spin leftAGun around x-axis speed <-900.000000>; + return (1); +} + +Shot4(zero) +{ + signal SIG_FIRE3; + set-signal-mask SIG_FIRE3; + emit-sfx 1024 + 1 from leftAFlare; + return(1); +} + +AimFromWeapon4(piecenum) +{ + piecenum = leftATurret; +} + +QueryWeapon4(piecenum) +{ + piecenum = leftAFlare; +} + +AimWeapon5(heading, pitch) +{ + signal SIG_AIM_5; + set-signal-mask SIG_AIM_5; + + if ((heading - <73.3>) > <-100> AND (heading - <73.3>) < <100>){ + turn leftBTurret to z-axis <0.000000> - pitch speed <50.000000>; + turn leftBTurretBase to y-axis heading - <90> speed <100.000000>; + wait-for-turn leftBTurret around x-axis; + wait-for-turn leftBTurretBase around y-axis; + start-script RestoreAfterDelay2(); + return (1); + } + else return(0); +} + +FireWeapon5() +{ + spin leftBGun around x-axis speed <-900.000000>; + return (1); +} + +Shot5(zero) +{ + signal SIG_FIRE4; + set-signal-mask SIG_FIRE4; + emit-sfx 1024 + 1 from leftBFlare; + return(1); +} + +AimFromWeapon5(piecenum) +{ + piecenum = leftBTurret; +} + +QueryWeapon5(piecenum) +{ + piecenum = leftBFlare; +} + +SweetSpot(piecenum) +{ + piecenum = base; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode railTurretBase type BITMAPONLY | NOHEATCLOUD; + explode railTurret type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode railTurretBase type FALL | NOHEATCLOUD; + explode railTurret type FALL | NOHEATCLOUD; + explode leftATurret type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode leftBTurret type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rightATurret type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rightBTurret type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode railTurretBase type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode railTurret type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode leftATurret type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode leftBTurret type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode rightATurret type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode rightBTurret type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode railTurretBase type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode railTurret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode leftATurret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode leftBTurret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode rightATurret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode rightBTurret type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} \ No newline at end of file diff --git a/scripts/Units/legerailtank.cob b/scripts/Units/legerailtank.cob new file mode 100644 index 00000000000..a1508442205 Binary files /dev/null and b/scripts/Units/legerailtank.cob differ diff --git a/scripts/Units/legflak.bos b/scripts/Units/legflak.bos index 6ac41c71508..a5e3c31c38e 100644 --- a/scripts/Units/legflak.bos +++ b/scripts/Units/legflak.bos @@ -1,14 +1,13 @@ -#define TA // This is a TA script -#include "sfxtype.h" -#include "exptype.h" +#include "../recoil_common_includes.h" -piece base, lflare, rflare, pole, turret, lsleeve, lbarrel, rsleeve, rbarrel, laim, raim, lshot, rshot, dish; +piece base, lflare, rflare, turret, sleeve, lbarrel, rbarrel, radar; -static-var activating, wpn1_lasthead, restore_delay, gun_switch, inrange, aiming, timer, lastaimed, lastfired, thisframe, thatframe; +static-var wpn1_lasthead, restore_delay, gun_switch; // Signal definitions -#define SIG_AIM 2 +#define SIGNAL_AIM1 1 +#define SIGNAL_FIRE1 2 #define SMOKEPIECE base @@ -18,27 +17,12 @@ static-var activating, wpn1_lasthead, restore_delay, gun_switch, inrange, aimin static-var Stunned; ExecuteRestoreAfterDelay() { - aiming = 0; if (Stunned) { return (1); } - turn lsleeve to x-axis <-30> speed <25.00000>; - turn rsleeve to x-axis <-30> speed <25.00000>; - spin pole around y-axis speed <25.0>; + turn sleeve to x-axis <-30> speed <25.00000>; + spin turret around y-axis speed <25.0>; - - - spin rbarrel around z-axis speed <600.000000>; - spin lbarrel around z-axis speed <600.000000>; - sleep restore_delay; - spin rbarrel around z-axis speed <300.000000>; - spin lbarrel around z-axis speed <300.000000>; - sleep (restore_delay / 2); - spin rbarrel around z-axis speed <150.000000>; - spin lbarrel around z-axis speed <150.000000>; - sleep (restore_delay / 4); - stop-spin rbarrel around z-axis; - stop-spin lbarrel around z-axis; sleep restore_delay; wpn1_lasthead = 1000000; set-signal-mask 0; @@ -58,187 +42,77 @@ RestoreAfterDelay() start-script ExecuteRestoreAfterDelay(); } - - -SweepFire()//nope. -{ - while( TRUE ) - { - - thatframe = get (GAME_FRAME); - if ((lastaimed > (thatframe - 15)) AND aiming == 1) { - - emit-sfx 2048+0 from lshot; - emit-sfx 2048+0 from rshot; - timer = timer + 1; - } - if (lastaimed <= (thatframe - 15)) - { - //inrange = 0; - //signal SIG_AIM; - //timer = 0; - start-script ExecuteRestoreAfterDelay(); - } - sleep 20; - } -} - - - Create() { + hide lflare; + hide rflare; + restore_delay = 6000; - - lastaimed = get (GAME_FRAME); - timer = 0; - inrange = 0; - //start-script SweepFire(); - aiming = 0; - - - - //hide lflare; - //hide rflare; - activating = 0; gun_switch = 0; - restore_delay = 3000; - //call-script InitState(); - - turn dish to x-axis <-30> speed <25.00000>; - spin dish around z-axis speed <25.0>; - - + + SLEEP_UNTIL_UNITFINISHED; - while( get BUILD_PERCENT_LEFT ) - { - sleep 400; - } + turn radar to x-axis <-45> speed <25.0>; + spin radar around z-axis speed <60.0>; start-script ExecuteRestoreAfterDelay(); } - -SetMaxReloadTime(Func_Var_1) +AimFromWeapon1(pieceIndex) { - //restore_delay = Func_Var_1 * 2; - return (0); + pieceIndex = turret; } - - - - - - - - - - - - AimWeapon1(heading, pitch) { - stop-spin pole around y-axis; - - aiming = 1; - //inrange = 1; - spin lbarrel around z-axis speed <700.000000>; - spin rbarrel around z-axis speed <700.000000>; - //thisframe = get (GAME_FRAME); + signal SIGNAL_AIM1; + set-signal-mask SIGNAL_AIM1; - lastaimed = get (GAME_FRAME); + stop-spin turret around y-axis; - signal SIG_AIM; - set-signal-mask SIG_AIM; - turn pole to y-axis heading speed <500.000000>; - turn lsleeve to x-axis <0.000000> - pitch speed <400.000000>; - turn rsleeve to x-axis <0.000000> - pitch speed <400.000000>; - //might need to remove this and use faster aiming? - //if (((get ABS(wpn1_lasthead - heading)) > 65536) OR(((get ABS(wpn1_lasthead - heading)) > 1300) AND ((get ABS(wpn1_lasthead - heading)) < 64236))) - //{ - wpn1_lasthead = 1000000; - wait-for-turn pole around y-axis; - wait-for-turn lsleeve around x-axis; - wait-for-turn rsleeve around x-axis; - //} + turn turret to y-axis heading speed <240.0>; + turn sleeve to x-axis <0.0> - pitch speed <120.0>; + + wpn1_lasthead = heading; start-script RestoreAfterDelay(); return (1); - - } - - -FireWeapon1() { - inrange = 1; - aiming = 1; - timer = 0; - lastfired = get (GAME_FRAME); - - - spin lbarrel around z-axis speed <900.000000>; - spin rbarrel around z-axis speed <900.000000>; - return (0); -} -//* -Shot1() { - if (gun_switch==0) { - emit-sfx 1024 + 0 from lflare; - gun_switch = 1; - } else { - emit-sfx 1024 + 0 from rflare; - gun_switch = 0; - } -} -//*/ -QueryWeapon1(piecenum) { - piecenum = lshot + gun_switch; - return (0); -} - -AimFromWeapon1(piecenum) { - piecenum = laim; - return (0); -} - - - - - - -//put a ciws (WITHOUT INTERCEPTOR TAG) on weapon 2, enable sweepfire, and a hitscan option on weapon 1 for the faking method - - - -/* -AimWeapon2(heading, pitch) +FireWeapon1() { - //wait a few after main gun last fired, then allow (can't do this apparently...) + spin lbarrel around z-axis speed <-2000.0>; + spin rbarrel around z-axis speed <2000.0>; + stop-spin lbarrel around z-axis decelerate <12>; + stop-spin rbarrel around z-axis decelerate <12>; return (0); } -FireWeapon2() +QueryWeapon1(piecenum) { + piecenum = lflare + gun_switch; return (0); } - -QueryWeapon2(piecenum) +Shot1(zero) //Barrel switcher so each minigun fires at the same time { - piecenum = lflare; - return (0); -} - -AimFromWeapon1(piecenum) { - piecenum = laim; - return (0); + signal SIGNAL_FIRE1; + set-signal-mask SIGNAL_FIRE1; + + + if(gun_switch == 0) + { + emit-sfx 1024 + 0 from rflare; + } + else + { + emit-sfx 1024 + 0 from lflare; + } + + gun_switch = !gun_switch; + return(1); } -//*/ - - - SweetSpot(piecenum) { piecenum = base; @@ -252,40 +126,36 @@ Killed(severity, corpsetype) { corpsetype = 1 ; explode base type BITMAPONLY | NOHEATCLOUD; - explode lsleeve type BITMAPONLY | NOHEATCLOUD; - explode rsleeve type BITMAPONLY | NOHEATCLOUD; + explode sleeve type BITMAPONLY | NOHEATCLOUD; explode lbarrel type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode pole type BITMAPONLY | NOHEATCLOUD; + explode turret type BITMAPONLY | NOHEATCLOUD; return(corpsetype); } if( severity <= 50 ) { corpsetype = 2 ; explode base type BITMAPONLY | NOHEATCLOUD; - explode lsleeve type FALL | NOHEATCLOUD; - explode rsleeve type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode sleeve type FALL | NOHEATCLOUD; explode lbarrel type FIRE | SMOKE | FALL | NOHEATCLOUD; explode rbarrel type FIRE | SMOKE | FALL | NOHEATCLOUD; - explode pole type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turret type FIRE | SMOKE | FALL | NOHEATCLOUD; return(corpsetype); } if( severity <= 99 ) { corpsetype = 3 ; explode base type BITMAPONLY | NOHEATCLOUD; - explode lsleeve type SMOKE | FALL | NOHEATCLOUD; - explode rsleeve type SMOKE | FALL | NOHEATCLOUD; + explode sleeve type SMOKE | FALL | NOHEATCLOUD; explode lbarrel type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; explode rbarrel type SMOKE | FALL | NOHEATCLOUD; - explode pole type SMOKE | FALL | NOHEATCLOUD; + explode turret type SMOKE | FALL | NOHEATCLOUD; return(corpsetype); } corpsetype = 3 ; explode base type BITMAPONLY | NOHEATCLOUD; - explode lsleeve type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; - explode rsleeve type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode sleeve type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; explode lbarrel type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; explode rbarrel type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; - explode pole type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turret type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; return corpsetype; } \ No newline at end of file diff --git a/scripts/Units/legflak.cob b/scripts/Units/legflak.cob index 3a1382c5aad..9d14d8436df 100644 Binary files a/scripts/Units/legflak.cob and b/scripts/Units/legflak.cob differ diff --git a/scripts/Units/legfus.bos b/scripts/Units/legfus.bos new file mode 100644 index 00000000000..b8aa5d29dfd --- /dev/null +++ b/scripts/Units/legfus.bos @@ -0,0 +1,123 @@ +#define TA // This is a TA script + +#include "sfxtype.h" +#include "exptype.h" + +piece base, emit; + +static-var statechg_DesiredState, statechg_StateChanging; +static-var Stunned; + +InitState() +{ + statechg_DesiredState = TRUE; + statechg_StateChanging = FALSE; + return (0); +} + +#define SMOKEPIECE base +#include "smokeunit_thread_nohit.h" + +Go() +{ + set ARMORED to 1; + show emit; +} +Stop() +{ + set ARMORED to 0; + hide emit; + +} +Create() +{ + hide emit; + call-script InitState(); + while( get BUILD_PERCENT_LEFT ) + { + sleep 1000; + } + call-script Go(); + return (0); +} + +SetStunned(State) +{ + Stunned = State; + if (Stunned) { + call-script Stop(); + } else { + call-script Go(); + } +} + + +RequestState(requestedstate, currentstate) +{ + if( statechg_StateChanging ) + { + statechg_DesiredState = requestedstate; + return (0); + } + statechg_StateChanging = TRUE; + currentstate = statechg_DesiredState; + statechg_DesiredState = requestedstate; + while( statechg_DesiredState != currentstate ) + { + if( statechg_DesiredState == 0 ) + { + call-script Go(); + currentstate = 0; + } + if( statechg_DesiredState == 1 ) + { + call-script Stop(); + currentstate = 1; + } + } + statechg_StateChanging = FALSE; + return (0); +} + +Activate() +{ + start-script RequestState(0); + return (0); +} + +Deactivate() +{ + start-script RequestState(1); + return (0); +} + +SweetSpot(piecenum) +{ + piecenum = base; + return (0); +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legfus.cob b/scripts/Units/legfus.cob new file mode 100644 index 00000000000..ff47fcc552e Binary files /dev/null and b/scripts/Units/legfus.cob differ diff --git a/scripts/Units/leghelios.bos b/scripts/Units/leghelios.bos index 4657eb7a100..0ab29532c31 100644 --- a/scripts/Units/leghelios.bos +++ b/scripts/Units/leghelios.bos @@ -1,20 +1,13 @@ -#define TA // This is a TA script +#include "../recoil_common_includes.h" -#include "sfxtype.h" -#include "exptype.h" -//piece base, turret, flare, barrel; +piece base, tracks, turret, barrel, flare; -// piece base, basePlate, lTrack, rTrack, -// turretBase, turret, -// barrel, barrelPlateFrontL, barrelPlateFrontR, barrelPlateRearL, barrelPlateRearR, flare; - -piece base, tracks, turret, barrel, flare; - -static-var restore_delay, shotcount; +static-var restore_delay, shotcount, lastpitch; // Signal definitions -#define SIG_AIM 2 +#define SIGNAL_AIM 1 +#define SIGNAL_MOVE 2 #define BASEPIECE base @@ -23,28 +16,35 @@ static-var restore_delay, shotcount; #define UNITSIZE 2 #define MAXTILT 100 +#define TB_BASE base +#define TB_TURNRATE <15.0> +#define TB_TILT_X <0.1> +#define TB_BANK_Z <0.1> // Do not define this if you dont want banking +#include "../tilt_bank_mobileunit.h" + Create() { shotcount = 0; - // turn barrelPlateFrontL to y-axis <-15> now; - // turn barrelPlateRearL to y-axis <-15> now; - - // turn barrelPlateFrontR to y-axis <15> now; - // turn BarrelPlateRearR to y-axis <15> now; - - // move barrelPlateFrontR to z-axis [-1] now; - // move barrelPlateFrontL to z-axis [-1] now; - - // move barrel to z-axis [-2] now; - + lastpitch = 0; hide flare; + restore_delay = 3000; + + call-script TB_Init(); +} - while( get BUILD_PERCENT_LEFT ) - { - sleep 200; - } +StartMoving(reversing) +{ + signal SIGNAL_MOVE; + set-signal-mask SIGNAL_MOVE; - restore_delay = 3000; + START_TILTBANK; +} + +StopMoving() +{ + signal SIGNAL_MOVE; + + STOP_TILTBANK; } SetMaxReloadTime(Func_Var_1) @@ -59,16 +59,6 @@ ExecuteRestoreAfterDelay() return (1); } turn turret to y-axis <0.000000> speed <90.000000>; - - // turn barrelPlateFrontL to y-axis <-15> speed <60>; - // turn barrelPlateRearL to y-axis <-15> speed <60>; - // turn barrelPlateFrontR to y-axis <15> speed <60>; - // turn barrelPlateRearR to y-axis <15> speed <60>; - // wait-for-turn barrelPlateFrontL around y-axis; - - // move barrelPlateFrontR to z-axis [0] speed [4]; - // move barrelPlateFrontL to z-axis [0] speed [4]; - // move barrel to z-axis [-2] speed [8]; turn barrel to x-axis <0> speed <60>; } SetStunned(State) @@ -86,25 +76,15 @@ RestoreAfterDelay() AimPrimary(heading, pitch) { - signal SIG_AIM; - set-signal-mask SIG_AIM; - - - // move barrel to z-axis [0] speed [8]; - // move barrelPlateFrontR to z-axis [0] speed [4]; - // move barrelPlateFrontL to z-axis [0] speed [4]; - // //wait-for-move barrelPlateFrontL along z-axis; - - // turn barrelPlateFrontL to y-axis <0> speed <60>; - // turn barrelPlateRearL to y-axis <0> speed <60>; - // turn barrelPlateFrontR to y-axis <0> speed <60>; - // turn barrelPlateRearR to y-axis <0> speed <60>; + signal SIGNAL_AIM; + set-signal-mask SIGNAL_AIM; + + lastpitch = pitch; - turn turret to y-axis heading speed <200.000000>; - turn barrel to x-axis <0.000000> - pitch speed <200.0>; + turn turret to y-axis heading speed <180.0>; + turn barrel to x-axis <0.0> - pitch speed <30.0>; wait-for-turn turret around y-axis; - wait-for-turn barrel around x-axis; start-script RestoreAfterDelay(); return (1); @@ -120,15 +100,17 @@ FirePrimary() ++shotcount; emit-sfx 1024 + 0 from flare; call-script lua_UnitScriptLight(1, shotcount); - move barrel to z-axis [-0.500000] now; - //wait-for-move barrel along z-axis; - move barrel to z-axis [0.000000] speed [0.250000]; - //return (0); + + move barrel to z-axis [-1.5] now; + turn barrel to x-axis <-5> - lastpitch now; + + move barrel to z-axis [0.0] speed [6]; + sleep 33; } AimFromPrimary(piecenum) { - piecenum = flare; + piecenum = barrel; } QueryPrimary(piecenum) @@ -171,4 +153,5 @@ Killed(severity, corpsetype) explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL; explode turret type EXPLODE_ON_HIT | FIRE | SMOKE | FALL; explode barrel type EXPLODE_ON_HIT | FIRE | FALL; + return(corpsetype); } diff --git a/scripts/Units/leghelios.cob b/scripts/Units/leghelios.cob index abd51472390..c20f5edb600 100644 Binary files a/scripts/Units/leghelios.cob and b/scripts/Units/leghelios.cob differ diff --git a/scripts/Units/leghp.bos b/scripts/Units/leghp.bos new file mode 100644 index 00000000000..71eb4df5a60 --- /dev/null +++ b/scripts/Units/leghp.bos @@ -0,0 +1,269 @@ + +#include "../recoil_common_includes.h" +#include "../factories_common.h" + +piece base, pad, nano1, nano2, nano3, nano4, cyl1, cyl2, cyl3, cyl4, cov1_big, cov2_big, cov3_big, cov4_big, +cov1_small, cov2_small, cov3_small, cov4_small, cover_big1, cover_big2, cover_small1, cover_small2, flare1, flare2, flare3, flare4, +fan1, fan2, buildlight1, buildlight3, buildlight2, buildlight4, buildlight1Point, buildlight2Point, buildlight3Point, buildlight4Point; + +static-var buildAnimPiece; + +// Signal definitions +#define SIGNAL_BUILD 2 +#define SIGNAL_TURNON 4 + + +Create() +{ + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide buildlight1Point; + hide buildlight2Point; + hide buildlight3Point; + hide buildlight4Point; + hide pad; + buildAnimPiece = 0; +} + +#define BASEPIECE base +#define MAXTILT 0 +#include "../unit_hitbyweaponid_and_smoke.h" + +QueryNanoPiece(pieceIndex) +{ + buildAnimPiece = (buildAnimPiece + 1) % 4; + pieceIndex = flare1 + buildAnimPiece; +} + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + + + move cover_big1 to z-axis [8.5] speed [8.5]; + move cover_small1 to z-axis [-6] speed [6]; + move cover_big2 to z-axis [-8.5] speed [8.5]; + move cover_small2 to z-axis [6] speed [6]; + + move cov1_small to x-axis [3] speed [10]; + move cov2_small to x-axis [-3] speed [10]; + move cov3_small to x-axis [3] speed [10]; + move cov4_small to x-axis [-3] speed [10]; + sleep(250); + move cov1_small to z-axis [9] speed [10]; + move cov2_small to z-axis [9] speed [10]; + move cov3_small to z-axis [-9] speed [10]; + move cov4_small to z-axis [-9] speed [10]; + sleep(100); + move cov1_big to z-axis [-4.5] speed [10]; + move cov2_big to z-axis [-4.5] speed [10]; + move cov3_big to z-axis [4.5] speed [10]; + move cov4_big to z-axis [4.5] speed [10]; + sleep(50); + turn cyl1 to x-axis <-45> speed <45>; + turn cyl2 to x-axis <-45> speed <45>; + turn cyl3 to x-axis <45> speed <45>; + turn cyl4 to x-axis <45> speed <45>; + wait-for-turn cyl1 around x-axis; + move nano1 to z-axis [5.5] speed [10]; + move nano2 to z-axis [5.5] speed [10]; + move nano3 to z-axis [-5.5] speed [10]; + move nano4 to z-axis [-5.5] speed [10]; + wait-for-move nano1 along z-axis; + + FACTORY_OPEN_BUILD; +} + +Deactivate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + + move nano1 to z-axis [5.5] speed [10]; + move nano2 to z-axis [5.5] speed [10]; + move nano3 to z-axis [-5.5] speed [10]; + move nano4 to z-axis [-5.5] speed [10]; + turn nano1 to z-axis <0> speed <100>; + turn nano2 to z-axis <0> speed <100>; + turn nano3 to z-axis <0> speed <100>; + turn nano4 to z-axis <0> speed <100>; + + sleep 5000; + + + move nano1 to z-axis [0] speed [10]; + move nano2 to z-axis [0] speed [10]; + move nano3 to z-axis [0] speed [10]; + move nano4 to z-axis [0] speed [10]; + wait-for-move nano1 along z-axis; + turn cyl1 to x-axis <0> speed <35>; + turn cyl2 to x-axis <0> speed <35>; + turn cyl3 to x-axis <0> speed <35>; + turn cyl4 to x-axis <0> speed <35>; + wait-for-turn cyl1 around x-axis; + move cov1_small to x-axis [0] speed [10]; + move cov2_small to x-axis [0] speed [10]; + move cov3_small to x-axis [0] speed [10]; + move cov4_small to x-axis [0] speed [10]; + sleep(350); + move cov1_small to z-axis [0] speed [10]; + move cov2_small to z-axis [0] speed [10]; + move cov3_small to z-axis [0] speed [10]; + move cov4_small to z-axis [0] speed [10]; + sleep(150); + move cov1_big to z-axis [0] speed [10]; + move cov2_big to z-axis [0] speed [10]; + move cov3_big to z-axis [0] speed [10]; + move cov4_big to z-axis [0] speed [10]; + + move cover_big1 to z-axis [0] speed [8.5]; + move cover_small1 to z-axis [0] speed [6]; + move cover_big2 to z-axis [0] speed [8.5]; + move cover_small2 to z-axis [0] speed [6]; + + + FACTORY_CLOSE_BUILD; +} +MoveCranes() +{ + while(TRUE) + { + turn nano1 to z-axis rand(-6500, -4500) speed <100>; + move nano1 to z-axis rand([0], [5]) speed [10]; + + turn nano2 to z-axis rand(2500, 4500) speed <100>; + move nano2 to z-axis rand([0], [5]) speed [10]; + + turn nano3 to z-axis rand(-6500, -4500) speed <100>; + move nano3 to z-axis rand([-5], [0]) speed [10]; + + turn nano4 to z-axis rand(2500, 4500) speed <100>; + move nano4 to z-axis rand([-5], [0]) speed [10]; + sleep(1000); + } +} +StartBuilding() +{ + show flare1; + show flare2; + show flare3; + show flare4; + show buildlight1Point; + show buildlight2Point; + show buildlight3Point; + show buildlight4Point; + signal SIGNAL_BUILD; + set-signal-mask SIGNAL_BUILD; + spin fan1 around y-axis speed <500> accelerate <1>; + spin fan2 around y-axis speed <500> accelerate <1>; + start-script MoveCranes(); + move buildlight1 to x-axis [1] speed [0.5]; + move buildlight3 to x-axis [1] speed [0.5]; + move buildlight2 to x-axis [-1] speed [0.5]; + move buildlight4 to x-axis [-1] speed [0.5]; + wait-for-move buildlight4 along x-axis; + spin buildlight1 around x-axis speed <-200> accelerate <1>; + spin buildlight3 around x-axis speed <-200> accelerate <1>; + spin buildlight2 around x-axis speed <200> accelerate <1>; + spin buildlight4 around x-axis speed <200> accelerate <1>; + +} + +StopBuilding() +{ + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide buildlight1Point; + hide buildlight2Point; + hide buildlight3Point; + hide buildlight4Point; + stop-spin fan1 around y-axis decelerate <2>; + stop-spin fan2 around y-axis decelerate <2>; + stop-spin buildlight1 around x-axis decelerate <1>; + stop-spin buildlight3 around x-axis decelerate <1>; + stop-spin buildlight2 around x-axis decelerate <1>; + stop-spin buildlight4 around x-axis decelerate <1>; + signal SIGNAL_BUILD; + wait-for-turn buildlight4 around x-axis; + move buildlight1 to x-axis [0] speed [0.5]; + move buildlight3 to x-axis [0] speed [0.5]; + move buildlight2 to x-axis [0] speed [0.5]; + move buildlight4 to x-axis [0] speed [0.5]; + + +// hide cagelight_emit1; +// hide cagelight_emit2; +// stop-spin cagelight1 around y-axis decelerate <1>; +// stop-spin cagelight2 around y-axis decelerate <1>; +} + +QueryBuildInfo(pieceIndex) +{ + pieceIndex = pad; +} + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode cyl2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano2 type BITMAPONLY | NOHEATCLOUD; + explode cyl3 type BITMAPONLY | NOHEATCLOUD; + explode nano3 type BITMAPONLY | NOHEATCLOUD; + explode cyl4 type BITMAPONLY | NOHEATCLOUD; + explode nano4 type BITMAPONLY | NOHEATCLOUD; + explode cyl1 type BITMAPONLY | NOHEATCLOUD; + explode nano1 type BITMAPONLY | NOHEATCLOUD; + explode pad type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode cyl2 type FALL | NOHEATCLOUD; + explode nano2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode cyl3 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano3 type FALL | NOHEATCLOUD; + explode cyl4 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano4 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode cyl1 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano1 type FALL | NOHEATCLOUD; + explode pad type FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode cyl2 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nano2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode cyl3 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nano3 type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode cyl4 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nano4 type SMOKE | FALL | NOHEATCLOUD; + explode cyl1 type SMOKE | FALL | NOHEATCLOUD; + explode nano1 type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode pad type SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode cyl2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano2 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode cyl3 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nano3 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode cyl4 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano4 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode cyl1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nano1 type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode pad type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/leghp.cob b/scripts/Units/leghp.cob new file mode 100644 index 00000000000..06a1348bfd3 Binary files /dev/null and b/scripts/Units/leghp.cob differ diff --git a/scripts/Units/legjav.bos b/scripts/Units/legjav.bos new file mode 100644 index 00000000000..1bd8bea66bf --- /dev/null +++ b/scripts/Units/legjav.bos @@ -0,0 +1,773 @@ + +#include "../recoil_common_includes.h" +#include "../opencloseanim.h" + +piece pelvis, torso, aaturret, aasleeve, aabarrel, lshoulder, rshoulder, larm, rarm, lhand, rhand, lsleeve, rsleeve, lbarrel, rbarrel, lstowed, rstowed, lthigh, rthigh, lknee, rknee, lfoot, rfoot, rkeel, lkeel, ltoes, rtoes, aimy, aimx, aaflare, flarel, flarer; + +static-var isMoving, animSpeed, maxSpeed, animFramesPerKeyframe, restore_delay, gun_left, miniguncount, wpnheading, shotcount; + +// Signal definitions +#define SIGNAL_AIM1 256 +#define SIGNAL_AIM2 512 +#define SIGNAL_MOVE 1024 +#define SIGNAL_FIRE1 2048 + +// this animation uses the static-var animFramesPerKeyframe which contains how many frames each keyframe takes + +Walk() {// For C:\Users\logst\Downloads\BAR\legjav anim.blend Created by https://github.com/Beherith/Skeletor_S3O V((0, 4, 2)) + set-signal-mask SIGNAL_MOVE; + while(isMoving) { + if (isMoving) { //Frame:3 + emit-sfx 1024 + 2 from rtoes; + turn lfoot to x-axis <-18.211357> speed <1825.311536> / animSpeed; + turn lkeel to x-axis <-46.316442> speed <1006.473803> / animSpeed; + turn lkeel to z-axis <-0.702781> speed <3.442841> / animSpeed; + turn lkeel to y-axis <-2.766797> speed <52.114544> / animSpeed; + turn lknee to x-axis <36.498417> speed <1601.241750> / animSpeed; + turn lthigh to x-axis <15.117618> speed <503.398790> / animSpeed; + turn lthigh to z-axis <-1.408778> speed <67.112612> / animSpeed; + turn ltoes to x-axis <21.035437> speed <1038.902944> / animSpeed; + move pelvis to z-axis [-0.216675] speed [32.396539] / animSpeed; + move pelvis to y-axis [-1.460117] speed [69.446297] / animSpeed; + turn pelvis to y-axis <2.292226> speed <79.607942> / animSpeed; + turn rfoot to x-axis <-12.440133> speed <596.162740> / animSpeed; + turn rkeel to x-axis <23.484974> speed <246.110567> / animSpeed; + turn rkeel to z-axis <0.764601> speed <20.033370> / animSpeed; + turn rkeel to y-axis <-2.445486> speed <83.935550> / animSpeed; + turn rknee to x-axis <2.592157> speed <648.014281> / animSpeed; + turn rthigh to x-axis <-13.647560> speed <193.901318> / animSpeed; + turn rthigh to z-axis <0.061712> speed <40.293254> / animSpeed; + turn torso to x-axis <-2.510836> speed <27.107254> / animSpeed; + turn torso to y-axis <-1.719170> speed <58.595986> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <28.749401> speed <312.511327> / animSpeed; + turn larm to x-axis <55.166448> speed <414.953048> / animSpeed; + turn rarm to x-axis <22.129331> speed <414.952843> / animSpeed; + turn rhand to x-axis <32.087221> speed <312.511481> / animSpeed; + turn lshoulder to y-axis <-10.314040> speed <156.255740> / animSpeed; + turn rshoulder to y-axis <1.145119> speed <156.255856> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:6 + turn lfoot to x-axis <-46.603340> speed <851.759492> / animSpeed; + turn lkeel to x-axis <-39.707578> speed <198.265912> / animSpeed; + turn lkeel to z-axis <0.137783> speed <25.216922> / animSpeed; + turn lkeel to y-axis <1.334571> speed <123.041043> / animSpeed; + turn lknee to x-axis <58.813803> speed <669.461572> / animSpeed; + turn lthigh to x-axis <1.378858> speed <412.162800> / animSpeed; + turn lthigh to z-axis <0.190461> speed <47.977171> / animSpeed; + turn ltoes to x-axis <34.381028> speed <400.367709> / animSpeed; + move pelvis to z-axis [-0.995735] speed [23.371793] / animSpeed; + move pelvis to y-axis [-1.747818] speed [8.631020] / animSpeed; + turn pelvis to y-axis <-1.241459> speed <106.010560> / animSpeed; + turn rfoot to x-axis <-9.795793> speed <79.330180> / animSpeed; + turn rkeel to x-axis <3.718027> speed <593.008396> / animSpeed; + turn rkeel to z-axis <-0.202892> speed <29.024808> / animSpeed; + turn rkeel to y-axis <1.250730> speed <110.886470> / animSpeed; + turn rknee to x-axis <9.048526> speed <193.691079> / animSpeed; + turn rthigh to x-axis <-2.974111> speed <320.203460> / animSpeed; + turn rthigh to z-axis <-0.090355> speed <4.562013> / animSpeed; + turn torso to x-axis <-0.416792> speed <62.821314> / animSpeed; + turn torso to y-axis <0.931094> speed <79.507926> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <42.884150> speed <424.042459> / animSpeed; + turn rhand to x-axis <32.952469> speed <424.042562> / animSpeed; + turn larm to x-axis <46.859592> speed <350.794315> / animSpeed; + turn rarm to x-axis <10.436174> speed <350.794725> / animSpeed; + turn lshoulder to y-axis <-3.246665> speed <212.021242> / animSpeed; + turn rshoulder to y-axis <8.212490> speed <212.021127> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:9 + turn lfoot to x-axis <-53.358746> speed <202.662163> / animSpeed; + turn lkeel to x-axis <2.286889> speed <1259.834023> / animSpeed; + turn lkeel to z-axis <-1.477643> speed <48.462792> / animSpeed; + turn lkeel to y-axis <4.136339> speed <84.053025> / animSpeed; + turn lknee to x-axis <42.367817> speed <493.379568> / animSpeed; + turn lthigh to x-axis <-13.412237> speed <443.732841> / animSpeed; + turn lthigh to z-axis <-0.618847> speed <24.279242> / animSpeed; + move pelvis to z-axis [-0.392350] speed [18.101554] / animSpeed; + move pelvis to y-axis [0.391090] speed [64.167252] / animSpeed; + turn pelvis to y-axis <-4.298492> speed <91.711007> / animSpeed; + turn rfoot to x-axis <11.755289> speed <646.532473> / animSpeed; + turn rkeel to x-axis <-9.971215> speed <410.677256> / animSpeed; + turn rkeel to z-axis <0.251575> speed <13.634007> / animSpeed; + turn rkeel to y-axis <4.258118> speed <90.221662> / animSpeed; + turn rknee to x-axis <-6.138516> speed <455.611265> / animSpeed; + turn rthigh to x-axis <12.076526> speed <451.519106> / animSpeed; + turn rthigh to z-axis <1.299561> speed <41.697469> / animSpeed; + turn rtoes to x-axis <-7.757021> speed <232.710632> / animSpeed; + turn torso to x-axis <3.640550> speed <121.720246> / animSpeed; + turn torso to y-axis <3.223870> speed <68.783265> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <55.112291> speed <366.844218> / animSpeed; + turn rhand to x-axis <20.724330> speed <366.844180> / animSpeed; + turn larm to x-axis <51.560449> speed <141.025716> / animSpeed; + turn rarm to x-axis <5.735315> speed <141.025755> / animSpeed; + turn lshoulder to y-axis <2.867406> speed <183.422128> / animSpeed; + turn rshoulder to y-axis <14.326561> speed <183.422135> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:12 + turn lfoot to x-axis <-28.598436> speed <742.809300> / animSpeed; + turn lkeel to x-axis <33.234068> speed <928.415358> / animSpeed; + turn lkeel to z-axis <-3.023672> speed <46.380886> / animSpeed; + turn lkeel to y-axis <6.600236> speed <73.916930> / animSpeed; + turn lknee to x-axis <10.672346> speed <950.864119> / animSpeed; + turn lthigh to x-axis <-23.522294> speed <303.301713> / animSpeed; + turn lthigh to z-axis <-2.004321> speed <41.564209> / animSpeed; + move pelvis to z-axis [0.755761] speed [34.443325] / animSpeed; + move pelvis to y-axis [1.987022] speed [47.877960] / animSpeed; + turn pelvis to y-axis <-5.705141> speed <42.199466> / animSpeed; + turn rfoot to x-axis <21.374312> speed <288.570686> / animSpeed; + turn rkeel to x-axis <17.984267> speed <838.664457> / animSpeed; + turn rkeel to z-axis <0.378115> speed <3.796200> / animSpeed; + turn rkeel to y-axis <4.768688> speed <15.317096> / animSpeed; + turn rknee to x-axis <-33.517938> speed <821.382648> / animSpeed; + turn rthigh to x-axis <33.469337> speed <641.784348> / animSpeed; + turn rthigh to z-axis <2.586744> speed <38.615489> / animSpeed; + turn rtoes to x-axis <-39.438380> speed <950.440759> / animSpeed; + turn torso to x-axis <2.345505> speed <38.851345> / animSpeed; + turn torso to y-axis <4.278857> speed <31.649628> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <60.738881> speed <168.797709> / animSpeed; + turn rhand to x-axis <15.097738> speed <168.797746> / animSpeed; + turn larm to x-axis <47.464153> speed <122.888900> / animSpeed; + turn rarm to x-axis <9.831618> speed <122.889067> / animSpeed; + turn lshoulder to y-axis <5.680711> speed <84.399168> / animSpeed; + turn rshoulder to y-axis <17.139863> speed <84.399060> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:15 + turn lfoot to x-axis <7.093960> speed <1070.771885> / animSpeed; + turn lkeel to x-axis <31.898240> speed <40.074837> / animSpeed; + turn lkeel to z-axis <-1.433427> speed <47.707362> / animSpeed; + turn lkeel to y-axis <5.220856> speed <41.381405> / animSpeed; + turn lknee to x-axis <-18.773040> speed <883.361582> / animSpeed; + turn lthigh to x-axis <-20.164274> speed <100.740595> / animSpeed; + turn lthigh to z-axis <-1.575312> speed <12.870241> / animSpeed; + turn ltoes to x-axis <-0.000000> speed <1031.430828> / animSpeed; + move pelvis to y-axis [0.824238] speed [34.883537] / animSpeed; + turn pelvis to y-axis <-4.921332> speed <23.514271> / animSpeed; + turn rfoot to x-axis <42.632361> speed <637.741456> / animSpeed; + turn rkeel to x-axis <-12.767315> speed <922.547461> / animSpeed; + turn rkeel to z-axis <0.533610> speed <4.664859> / animSpeed; + turn rkeel to y-axis <4.359678> speed <12.270303> / animSpeed; + turn rknee to x-axis <-16.876308> speed <499.248887> / animSpeed; + turn rthigh to x-axis <31.867839> speed <48.044951> / animSpeed; + turn rthigh to z-axis <3.471749> speed <26.550153> / animSpeed; + turn rtoes to x-axis <-25.086240> speed <430.564197> / animSpeed; + turn torso to x-axis <-1.607260> speed <118.582961> / animSpeed; + turn torso to y-axis <3.690999> speed <17.635758> / animSpeed; + + if (IsClosed) + { + + turn lhand to x-axis <57.603633> speed <94.057442> / animSpeed; + turn rhand to x-axis <18.232986> speed <94.057441> / animSpeed; + turn larm to x-axis <36.143435> speed <339.621526> / animSpeed; + turn rarm to x-axis <21.152334> speed <339.621500> / animSpeed; + turn lshoulder to y-axis <4.113090> speed <47.028657> / animSpeed; + turn rshoulder to y-axis <15.572244> speed <47.028567> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:18 + emit-sfx 1024 + 2 from ltoes; + turn lfoot to x-axis <-12.440133> speed <586.022790> / animSpeed; + turn lkeel to x-axis <23.484974> speed <252.397995> / animSpeed; + turn lkeel to z-axis <-0.752540> speed <20.426623> / animSpeed; + turn lkeel to y-axis <2.399417> speed <84.643173> / animSpeed; + turn lknee to x-axis <2.592157> speed <640.955908> / animSpeed; + turn lthigh to x-axis <-13.699964> speed <193.929314> / animSpeed; + turn lthigh to z-axis <-0.203165> speed <41.164412> / animSpeed; + move pelvis to z-axis [-0.233059] speed [32.629737] / animSpeed; + move pelvis to y-axis [-1.482891] speed [69.213867] / animSpeed; + turn pelvis to y-axis <-2.248001> speed <80.199953> / animSpeed; + turn rfoot to x-axis <-18.211357> speed <1825.311536> / animSpeed; + turn rkeel to x-axis <-46.316438> speed <1006.473701> / animSpeed; + turn rkeel to y-axis <2.574013> speed <53.569963> / animSpeed; + turn rknee to x-axis <36.498417> speed <1601.241750> / animSpeed; + turn rthigh to x-axis <15.110904> speed <502.708053> / animSpeed; + turn rthigh to z-axis <1.402773> speed <62.069278> / animSpeed; + turn rtoes to x-axis <12.910848> speed <1139.912631> / animSpeed; + turn torso to x-axis <-2.510836> speed <27.107254> / animSpeed; + turn torso to y-axis <1.686000> speed <60.149955> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <46.910299> speed <320.800018> / animSpeed; + turn rhand to x-axis <27.926318> speed <320.799941> / animSpeed; + turn larm to x-axis <21.944841> speed <425.957815> / animSpeed; + turn rarm to x-axis <35.350932> speed <425.957917> / animSpeed; + turn lshoulder to y-axis <-1.233575> speed <160.399938> / animSpeed; + turn rshoulder to y-axis <10.225585> speed <160.399778> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:21 + turn lfoot to x-axis <-9.795793> speed <79.330180> / animSpeed; + turn lkeel to x-axis <3.718028> speed <593.008370> / animSpeed; + turn lkeel to z-axis <0.210668> speed <28.896214> / animSpeed; + turn lkeel to y-axis <-1.298078> speed <110.924861> / animSpeed; + turn lknee to x-axis <9.048528> speed <193.691117> / animSpeed; + turn lthigh to x-axis <-2.976451> speed <321.705368> / animSpeed; + move pelvis to z-axis [-0.997146] speed [22.922607] / animSpeed; + move pelvis to y-axis [-1.731224] speed [7.449989] / animSpeed; + turn pelvis to y-axis <1.288440> speed <106.093224> / animSpeed; + turn rfoot to x-axis <-46.603340> speed <851.759492> / animSpeed; + turn rkeel to x-axis <-39.707578> speed <198.265809> / animSpeed; + turn rkeel to z-axis <-0.142187> speed <21.742548> / animSpeed; + turn rkeel to y-axis <-1.385055> speed <118.772035> / animSpeed; + turn rknee to x-axis <58.813803> speed <669.461572> / animSpeed; + turn rthigh to x-axis <1.368883> speed <412.260633> / animSpeed; + turn rthigh to z-axis <-0.197623> speed <48.011874> / animSpeed; + turn rtoes to x-axis <34.381028> speed <644.105391> / animSpeed; + turn torso to x-axis <-0.416792> speed <62.821307> / animSpeed; + turn torso to y-axis <-0.966330> speed <79.569907> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <32.764550> speed <424.372460> / animSpeed; + turn rhand to x-axis <43.072069> speed <424.372537> / animSpeed; + turn larm to x-axis <10.319848> speed <348.749792> / animSpeed; + turn rarm to x-axis <46.975927> speed <348.749869> / animSpeed; + turn lshoulder to y-axis <-8.306453> speed <212.186326> / animSpeed; + turn rshoulder to y-axis <3.152702> speed <212.186480> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:24 + turn lfoot to x-axis <11.755289> speed <646.532473> / animSpeed; + turn lkeel to x-axis <-9.971216> speed <410.677333> / animSpeed; + turn lkeel to z-axis <-0.255415> speed <13.982487> / animSpeed; + turn lkeel to y-axis <-4.289143> speed <89.731935> / animSpeed; + turn lknee to x-axis <-6.138516> speed <455.611316> / animSpeed; + turn lthigh to x-axis <12.119958> speed <452.892282> / animSpeed; + turn lthigh to z-axis <-1.495461> speed <41.576451> / animSpeed; + turn ltoes to x-axis <-7.757019> speed <232.710581> / animSpeed; + move pelvis to z-axis [-0.376829] speed [18.609506] / animSpeed; + move pelvis to y-axis [0.424015] speed [64.657173] / animSpeed; + turn pelvis to y-axis <4.330190> speed <91.252495> / animSpeed; + turn rfoot to x-axis <-53.358746> speed <202.662163> / animSpeed; + turn rkeel to x-axis <2.286889> speed <1259.834023> / animSpeed; + turn rkeel to z-axis <1.478224> speed <48.612325> / animSpeed; + turn rkeel to y-axis <-4.063928> speed <80.366186> / animSpeed; + turn rknee to x-axis <42.367817> speed <493.379568> / animSpeed; + turn rthigh to x-axis <-13.386278> speed <442.654816> / animSpeed; + turn rthigh to z-axis <0.609503> speed <24.213776> / animSpeed; + turn torso to x-axis <3.640550> speed <121.720253> / animSpeed; + turn torso to y-axis <-3.247643> speed <68.439382> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <20.597552> speed <365.009954> / animSpeed; + turn rhand to x-axis <55.239069> speed <365.010005> / animSpeed; + turn larm to x-axis <5.731817> speed <137.640918> / animSpeed; + turn rarm to x-axis <51.563960> speed <137.640982> / animSpeed; + turn lshoulder to y-axis <-14.389957> speed <182.505131> / animSpeed; + turn rshoulder to y-axis <-2.930801> speed <182.505092> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:27 + turn lfoot to x-axis <21.374312> speed <288.570686> / animSpeed; + turn lkeel to x-axis <17.984269> speed <838.664559> / animSpeed; + turn lkeel to z-axis <-0.376718> speed <3.639066> / animSpeed; + turn lkeel to y-axis <-4.770471> speed <14.439844> / animSpeed; + turn lknee to x-axis <-33.517938> speed <821.382648> / animSpeed; + turn lthigh to x-axis <33.506323> speed <641.590942> / animSpeed; + turn lthigh to z-axis <-2.774777> speed <38.379470> / animSpeed; + turn ltoes to x-axis <-39.438380> speed <950.440810> / animSpeed; + move pelvis to z-axis [0.766664] speed [34.304783] / animSpeed; + move pelvis to y-axis [1.990566] speed [46.996536] / animSpeed; + turn pelvis to y-axis <5.709385> speed <41.375847> / animSpeed; + turn rfoot to x-axis <-28.598436> speed <742.809300> / animSpeed; + turn rkeel to x-axis <33.234061> speed <928.415153> / animSpeed; + turn rkeel to z-axis <2.842474> speed <40.927488> / animSpeed; + turn rkeel to y-axis <-6.293228> speed <66.879010> / animSpeed; + turn rknee to x-axis <10.672345> speed <950.864171> / animSpeed; + turn rthigh to x-axis <-23.501270> speed <303.449783> / animSpeed; + turn rthigh to z-axis <1.995777> speed <41.588226> / animSpeed; + turn torso to x-axis <2.345505> speed <38.851345> / animSpeed; + turn torso to y-axis <-4.282039> speed <31.031889> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <15.080773> speed <165.503363> / animSpeed; + turn rhand to x-axis <60.755850> speed <165.503441> / animSpeed; + turn larm to x-axis <9.942285> speed <126.314039> / animSpeed; + turn rarm to x-axis <47.353486> speed <126.314206> / animSpeed; + turn lshoulder to y-axis <-17.148351> speed <82.751823> / animSpeed; + turn rshoulder to y-axis <-5.689195> speed <82.751816> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + if (isMoving) { //Frame:30 + turn lfoot to x-axis <42.632361> speed <637.741456> / animSpeed; + turn lkeel to x-axis <-12.767315> speed <922.547513> / animSpeed; + turn lkeel to z-axis <-0.589128> speed <6.372326> / animSpeed; + turn lkeel to y-axis <-4.465012> speed <9.163766> / animSpeed; + turn lknee to x-axis <-16.876308> speed <499.248887> / animSpeed; + turn lthigh to x-axis <31.837680> speed <50.059276> / animSpeed; + turn lthigh to z-axis <-3.649274> speed <26.234938> / animSpeed; + turn ltoes to x-axis <-13.594662> speed <775.311541> / animSpeed; + move pelvis to y-axis [0.793484] speed [35.912476] / animSpeed; + turn pelvis to y-axis <4.896492> speed <24.386785> / animSpeed; + turn rfoot to x-axis <7.093960> speed <1070.771872> / animSpeed; + turn rkeel to x-axis <31.898240> speed <40.074632> / animSpeed; + turn rkeel to z-axis <1.434349> speed <42.243725> / animSpeed; + turn rkeel to y-axis <-5.198006> speed <32.856663> / animSpeed; + turn rknee to x-axis <-18.773041> speed <883.361582> / animSpeed; + turn rthigh to x-axis <-20.218251> speed <98.490577> / animSpeed; + turn rthigh to z-axis <1.404821> speed <17.728695> / animSpeed; + turn rtoes to x-axis <-0.000000> speed <1031.430828> / animSpeed; + turn torso to x-axis <-1.607260> speed <118.582961> / animSpeed; + turn torso to y-axis <-3.672369> speed <18.290098> / animSpeed; + + if (IsClosed) + { + turn lhand to x-axis <27.332356> speed <97.547498> / animSpeed; + turn rhand to x-axis <57.504267> speed <97.547498> / animSpeed; + turn larm to x-axis <21.334682> speed <341.771883> / animSpeed; + turn rarm to x-axis <35.961093> speed <341.771806> / animSpeed; + turn lshoulder to y-axis <-15.522563> speed <48.773647> / animSpeed; + turn rshoulder to y-axis <-4.063409> speed <48.773570> / animSpeed; + } + sleep ((33*animSpeed) -1); + } + } +} + +// Call this from StopMoving()! +StopWalking() { + animSpeed = 10; // tune restore speed here, higher values are slower restore speeds + move pelvis to y-axis [0] speed [231.487656] / animSpeed; + move pelvis to z-axis [0] speed [114.811084] / animSpeed; + turn lfoot to x-axis <0> speed <6084.371786> / animSpeed; + turn lkeel to x-axis <0> speed <4199.446743> / animSpeed; + turn lkeel to y-axis <0> speed <410.136809> / animSpeed; + turn lknee to x-axis <0> speed <5337.472500> / animSpeed; + turn lthigh to x-axis <0> speed <2138.636475> / animSpeed; + turn ltoes to x-axis <0> speed <3463.009813> / animSpeed; + turn pelvis to y-axis <0> speed <353.644079> / animSpeed; + turn rfoot to x-axis <0> speed <6084.371786> / animSpeed; + turn rkeel to x-axis <0> speed <4199.446743> / animSpeed; + turn rkeel to y-axis <0> speed <395.906782> / animSpeed; + turn rknee to x-axis <0> speed <5337.472500> / animSpeed; + turn rthigh to x-axis <0> speed <2139.281159> / animSpeed; + turn rtoes to x-axis <0> speed <3799.708770> / animSpeed; + turn torso to x-axis <0> speed <405.734178> / animSpeed; + turn torso to y-axis <0> speed <265.233022> / animSpeed; + + + if (IsClosed) + { + turn lshoulder to y-axis <15> speed <150>; + turn rshoulder to y-axis <-15> speed <150>; + turn lshoulder to z-axis <-15> speed <100>; + turn rshoulder to z-axis <15> speed <100>; + turn larm to x-axis <15> speed <150>; + turn rarm to x-axis <15> speed <150>; + turn lhand to x-axis <30> speed <200>; + turn rhand to x-axis <30> speed <200>; + } + + turn lthigh to y-axis <15> speed <250>; + turn rthigh to y-axis <-15> speed <250>; + turn lthigh to z-axis <-5> speed <250>; + turn rthigh to z-axis <5> speed <250>; + turn lkeel to z-axis <5> speed <250>; + turn rkeel to z-axis <-5> speed <250>; +} + +// REMEMBER TO animspeed = 4 in Create() !! +UnitSpeed(){ + maxSpeed = get MAX_SPEED; // this returns cob units per frame i think + animFramesPerKeyframe = 4; //we need to calc the frames per keyframe value, from the known animtime + maxSpeed = maxSpeed + (maxSpeed /(2*animFramesPerKeyframe)); // add fudge + var groundheight; + var unitxz; + while(TRUE){ + unitxz = (get UNIT_XZ); + animSpeed = (get CURRENT_SPEED); + if (animSpeed<1) animSpeed=1; + animSpeed = (maxSpeed * 4) / animSpeed; + //get PRINT(maxSpeed, animFramesPerKeyframe, animSpeed); //how to print debug info from bos + if (animSpeed<1) animSpeed=1; + if (animspeed>6) animSpeed = 6; + sleep 98; + + groundheight = (get GROUND_WATER_HEIGHT(unitxz)); + if (groundheight < (((-1) * 66)) AND isMoving) + { + // bubble effect should always play when moving and underwater + emit-sfx 1024 + 1 from lshoulder; + emit-sfx 1024 + 1 from rshoulder; + } + } +} + +StartMoving(){ + signal SIGNAL_MOVE; + isMoving=TRUE; + + turn lthigh to y-axis <0> speed <45>; + turn rthigh to y-axis <0> speed <45>; + turn lthigh to z-axis <0> speed <45>; + turn rthigh to z-axis <0> speed <45>; + turn lkeel to z-axis <0> speed <45>; + turn rkeel to z-axis <0> speed <45>; + + start-script Walk(); +} + +StopMoving(){ + signal SIGNAL_MOVE; + isMoving=FALSE; + call-script StopWalking(); +} + +#define BASEPIECE pelvis +#define HITSPEED <45.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 10 +#define MAXTILT 100 + +#include "../unit_hitbyweaponid_and_smoke.h" + +Create() +{ + hide aimx; + hide aimy; + hide lsleeve; + hide rsleeve; + hide lbarrel; + hide rbarrel; + hide flarel; + hide flarer; + + isMoving = FALSE; + wpnheading = 0; + gun_left = 0; + miniguncount = 0; + animSpeed = 4; + shotcount = 0; + + restore_delay = 6000; + call-script StopMoving(); + + SLEEP_UNTIL_UNITFINISHED; + + start-script UnitSpeed(); + call-script CATT1_Init(); +} + +//-------------------------------CONSTANT ACCELERATION TURRET TURNING--------------------------- +// MaxVelocity and acceleration are in degrees per frame (not second!) +// Jerk is the minimum velocity of the turret +// A high precision requirement can result in overshoots if desired +// Author Beherith mysterme@gmail.com. License: GNU GPL v2. + +#define CATT1_PIECE_X aimx +#define CATT1_PIECE_Y aimy + +#define CATT1_MAX_VELOCITY <12.0> +#define CATT1_ACCELERATION <2.0> +#define CATT1_JERK <4> +#define CATT1_PRECISION <10.0> +#define CATT1_PITCH_SPEED <85> +#define CATT1_RESTORE_DELAY 3000 +#define CATT1_RESTORE_SPEED <3.0> + +#include "../constant_acceleration_turret_turning_1.h" + + +RestoreAfterDelay() +{ + set-signal-mask SIGNAL_AIM1 | SIGNAL_AIM2; + sleep restore_delay; + start-script ExecuteRestoreAfterDelay(); +} + +ExecuteRestoreAfterDelay() +{ + start-script CATT1_Restore(); + turn aaturret to y-axis 0 speed <120>; + turn aasleeve to x-axis 0 speed <60>; + call-script OpenCloseAnim(0); + wpnheading = 0; +} + +lua_UnitScriptLight(lightIndex, count) +{ + return 0; +} + +Shot1(zero) //Barrel switcher so each minigun fires at the same time +{ + signal SIGNAL_FIRE1; + set-signal-mask SIGNAL_FIRE1; + + + if(miniguncount == 0) + { + emit-sfx 1024 + 0 from flarer; + ++shotcount; + } + if(miniguncount == 1) + { + emit-sfx 1024 + 0 from flarel; + ++shotcount; + } + sleep 32; + ++miniguncount; + if(miniguncount>=2) + { + miniguncount=0; + } + return(1); +} + + + +// Primary Weapons + +AimFromWeapon1(pieceIndex) +{ + pieceIndex = aimy; +} + +QueryWeapon1(pieceIndex) +{ + if(miniguncount == 0) + { + pieceIndex = flarel; + } + if(miniguncount == 1) + { + pieceIndex = flarer; + } + return (0); +} + +AimWeapon1(heading, pitch) +{ + start-script OpenCloseAnim(1); + signal SIGNAL_AIM1; + set-signal-mask SIGNAL_AIM1; + start-script RestoreAfterDelay(); + + if (!IsOpen) return 0; + + call-script CATT1_Aim(heading,pitch); + + //if (ABSOLUTE_GREATER_THAN(WRAPDELTA(wpnheading - heading), <20>)){ + // wait-for-turn aimy around y-axis; + // wait-for-turn aimx around x-axis; + //} + wpnheading = heading; + return (1); +} + +FireWeapon1() +{ + call-script lua_UnitScriptLight(1, shotcount); + call-script lua_UnitScriptLight(2, shotcount); + spin lbarrel around z-axis speed <-1080.0>; + spin rbarrel around z-axis speed <1080.0>; + stop-spin lbarrel around z-axis decelerate <12>; + stop-spin rbarrel around z-axis decelerate <12>; + return (0); +} + + + +// AA Defense +AimFromWeapon2(pieceIndex) +{ + pieceIndex = aasleeve; +} + +QueryWeapon2(pieceIndex) +{ + pieceIndex = aaflare; +} + +AimWeapon2(heading, pitch) +{ + signal SIGNAL_AIM2; + set-signal-mask SIGNAL_AIM2; + + turn aaturret to y-axis (heading - CATT1position) speed <720>; + turn aasleeve to x-axis 0-pitch speed <360>; + + start-script RestoreAfterDelay(); + return (1); +} + +FireWeapon2() +{ + spin aabarrel around z-axis speed <-1080.0>; + emit-sfx 1024 + 0 from aaflare; + sleep 66; + emit-sfx 1024 + 0 from aaflare; + sleep 66; + emit-sfx 1024 + 0 from aaflare; + sleep 66; + emit-sfx 1024 + 0 from aaflare; + sleep 66; + emit-sfx 1024 + 0 from aaflare; + sleep 66; + emit-sfx 1024 + 0 from aaflare; + sleep 66; + stop-spin aabarrel around z-axis decelerate <6>; + return (0); +} + +Open() +{ + turn lshoulder to y-axis <30> speed <60>; + turn rshoulder to y-axis <-30> speed <60>; + turn lshoulder to z-axis <0> speed <20>; + turn rshoulder to z-axis <0> speed <20>; + turn larm to x-axis <60> speed <120>; + turn rarm to x-axis <60> speed <120>; + turn lhand to x-axis <30> speed <60>; + turn rhand to x-axis <30> speed <60>; + turn lstowed to y-axis <-15> speed <30>; + move lstowed to x-axis [-3.2] speed [6.4]; + move lstowed to z-axis [-7.8] speed [15.6]; + turn rstowed to y-axis <15> speed <30>; + move rstowed to x-axis [3.2] speed [6.4]; + move rstowed to z-axis [-7.8] speed [15.6]; + + wait-for-turn larm around x-axis; + wait-for-turn lhand around x-axis; + + // Switch weapon models out + show lsleeve; + show rsleeve; + show lbarrel; + show rbarrel; + hide lstowed; + hide rstowed; + show flarel; + show flarer; + + turn lshoulder to y-axis <-3> speed <90>; + turn rshoulder to y-axis <3> speed <90>; + turn lshoulder to z-axis <-15> speed <60>; + turn rshoulder to z-axis <15> speed <60>; + turn larm to x-axis <20> speed <90>; + turn rarm to x-axis <20> speed <90>; + turn lhand to x-axis <-20> speed <120>; + turn rhand to x-axis <-20> speed <120>; + move lbarrel to z-axis [0] speed [30]; + move rbarrel to z-axis [0] speed [30]; +} + +Close() +{ + turn lshoulder to y-axis <30> speed <40>; + turn rshoulder to y-axis <-30> speed <40>; + turn lshoulder to z-axis <0> speed <20>; + turn rshoulder to z-axis <0> speed <20>; + turn larm to x-axis <60> speed <90>; + turn rarm to x-axis <60> speed <90>; + turn lhand to x-axis <30> speed <45>; + turn rhand to x-axis <30> speed <45>; + move lbarrel to z-axis [-14] speed [30]; + move rbarrel to z-axis [-14] speed [30]; + + wait-for-turn larm around x-axis; + wait-for-turn lhand around x-axis; + + // Switch weapon models out + hide lsleeve; + hide rsleeve; + hide lbarrel; + hide rbarrel; + show lstowed; + show rstowed; + hide flarel; + hide flarer; + + turn lshoulder to y-axis <15> speed <45>; + turn rshoulder to y-axis <-15> speed <45>; + turn lshoulder to z-axis <-15> speed <30>; + turn rshoulder to z-axis <15> speed <30>; + turn larm to x-axis <15> speed <45>; + turn rarm to x-axis <15> speed <45>; + turn lhand to x-axis <30> speed <90>; + turn rhand to x-axis <30> speed <90>; + turn lstowed to y-axis <0> speed <30>; + move lstowed to x-axis [0] speed [6.4]; + move lstowed to z-axis [0] speed [15.6]; + turn rstowed to y-axis <0> speed <30>; + move rstowed to x-axis [0] speed [6.4]; + move rstowed to z-axis [0] speed [15.6]; +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode pelvis type BITMAPONLY | NOHEATCLOUD; + explode rthigh type BITMAPONLY | NOHEATCLOUD; + explode rkeel type BITMAPONLY | NOHEATCLOUD; + explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode lfoot type BITMAPONLY | NOHEATCLOUD; + explode torso type BITMAPONLY | NOHEATCLOUD; + + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode pelvis type BITMAPONLY | NOHEATCLOUD; + explode rthigh type FALL | NOHEATCLOUD; + explode rkeel type FALL | NOHEATCLOUD; + explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode ltoes type FALL | NOHEATCLOUD; + explode lfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode pelvis type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rthigh type SMOKE | FALL | NOHEATCLOUD; + explode rkeel type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rfoot type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode lthigh type SMOKE | FALL | NOHEATCLOUD; + explode lfoot type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode torso type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode pelvis type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode rthigh type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode rkeel type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode rfoot type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode ltoes type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode lfoot type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode torso type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} + diff --git a/scripts/Units/legjav.cob b/scripts/Units/legjav.cob new file mode 100644 index 00000000000..de684e8859e Binary files /dev/null and b/scripts/Units/legjav.cob differ diff --git a/scripts/Units/legphoenix.bos b/scripts/Units/legphoenix.bos index f66d9177df9..1cfbb0af8ff 100644 --- a/scripts/Units/legphoenix.bos +++ b/scripts/Units/legphoenix.bos @@ -3,7 +3,7 @@ #include "sfxtype.h" #include "exptype.h" -piece base, triparent, x, z, lthrust, mthrust, rthrust, ring1, ring2, ring3, ringlight, fireline, lineflare; +piece base, triparent, x, z, lthrust, llthrust, rthrust, rrthrust, ring1, ring2, ring3, ringlight, fireline, lineflare, wingr, wingl, wingbr, wingbl; static-var maxSpeed, currentSpeed, shotcount, timer, isfiring; @@ -74,37 +74,53 @@ lua_UnitScriptLight(lightIndex, count) Create() { call-script FakeUprightInit(); - turn fireline to x-axis <50> speed <50>; - turn fireline to y-axis <0> speed <50>; + turn fireline to x-axis <115> now; shotcount = 0; timer = 0; isfiring = 0; //hide lthrust; - //hide mthrust; + //hide llthrust; //hide rthrust; + //hide rrthrust; } Activate() { show rthrust; - show mthrust; + show rrthrust; show lthrust; + show llthrust; spin ring1 around x-axis speed <60> accelerate <200>; spin ring2 around x-axis speed <40> accelerate <200>; spin ring2 around y-axis speed <30> accelerate <200>; spin ring3 around z-axis speed <20> accelerate <200>; + + turn wingr to z-axis <-25> speed <30>; + turn wingl to z-axis <25> speed <30>; + } Deactivate() { hide rthrust; - hide mthrust; + hide rrthrust; hide lthrust; + hide llthrust; stop-spin ring1 around x-axis; stop-spin ring2 around x-axis; stop-spin ring2 around y-axis; stop-spin ring3 around z-axis; + move wingr to z-axis [0] speed [30]; + move wingl to z-axis [0] speed [30]; + move wingbr to z-axis [0] speed [30]; + move wingbl to z-axis [0] speed [30]; + + turn wingr to z-axis <0> speed <30>; + turn wingl to z-axis <0> speed <30>; + + + turn ring1 to x-axis <0> speed <60>; turn ring2 to x-axis <0> speed <60>; turn ring2 to y-axis <0> speed <60>; @@ -153,16 +169,42 @@ FirePrimary() { isfiring = 1; start-script StrafeFire(); + move wingr to z-axis [5] speed [15]; + move wingl to z-axis [5] speed [15]; + move wingbr to z-axis [-8] speed [15]; + move wingbl to z-axis [-8] speed [15]; + turn wingr to y-axis <10> speed <15>; + turn wingbr to y-axis <-20> speed <15>; + turn wingbr to z-axis <-10> speed <15>; + turn wingl to y-axis <-10> speed <15>; + turn wingbl to y-axis <20> speed <15>; + turn wingbl to z-axis <10> speed <15>; + + spin ring1 around x-axis speed <180> accelerate <200>; spin ring2 around x-axis speed <120> accelerate <200>; spin ring2 around y-axis speed <60> accelerate <200>; spin ring3 around z-axis speed <70> accelerate <200>; emit-sfx 4096 + 2 from base; sleep 2900; + + move wingr to z-axis [0] speed [20]; + move wingl to z-axis [0] speed [20]; + move wingbr to z-axis [0] speed [20]; + move wingbl to z-axis [0] speed [20]; + turn wingr to y-axis <0> speed <20>; + turn wingbr to y-axis <0> speed <20>; + turn wingl to y-axis <0> speed <20>; + turn wingbl to y-axis <0> speed <20>; + wait-for-turn wingr around y-axis; + turn wingbr to z-axis <0> speed <20>; + turn wingbl to z-axis <0> speed <20>; + if (Rand(0,20)==20) { start-script DoBarrelRoll(); } + return 0; } diff --git a/scripts/Units/legphoenix.cob b/scripts/Units/legphoenix.cob index a7ee58c9ec7..48bf747d5e9 100644 Binary files a/scripts/Units/legphoenix.cob and b/scripts/Units/legphoenix.cob differ diff --git a/scripts/Units/legvflak.bos b/scripts/Units/legvflak.bos new file mode 100644 index 00000000000..fcc54d19404 --- /dev/null +++ b/scripts/Units/legvflak.bos @@ -0,0 +1,228 @@ + +#include "../recoil_common_includes.h" + +// Signal definitions +#define SIGNAL_MOVE 1 +#define SIGNAL_AIM1 2 +#define SIGNAL_FIRE1 4 + +piece base, armor, turret, sleeve, lbarrel, rbarrel, lflare, rflare, wheelfl, wheelfr, wheelml, wheelmr, wheelbl, wheelbr, radar; + +static-var restore_delay, currentSpeed, moveSpeed, wheelSpeed, oldHeading, wpn1_lasthead, gun_switch; + +#define BASEPIECE base +#define HITSPEED <85.0> +//how 'heavy' the unit is, on a scale of 1-10 +#define UNITSIZE 1 +#define MAXTILT 100 + +#define TB_BASE base +#define TB_TURNRATE <15.0> +#define TB_TILT_X <0.1> +#define TB_BANK_Z <0.1> // Do not define this if you dont want banking +#include "../tilt_bank_mobileunit.h" + +Steering(heading, steery, currentSpeed) +{ + while(1) + { + heading = get HEADING; + steery = (heading - oldheading)*2; + + turn wheelfl to y-axis steery speed <120>; + turn wheelfr to y-axis steery speed <120>; + turn wheelbl to y-axis 0 - steery speed <120>; + turn wheelbr to y-axis 0 - steery speed <120>; + + currentSpeed = (get CURRENT_SPEED)*20/moveSpeed; + wheelSpeed = currentSpeed * 50; + if (currentSpeed<1) currentSpeed=1; // prevent infinite timing + + spin wheelfl around x-axis speed (<1> * wheelSpeed); + spin wheelfr around x-axis speed (<1> * wheelSpeed); + spin wheelml around x-axis speed (<1> * wheelSpeed); + spin wheelmr around x-axis speed (<1> * wheelSpeed); + spin wheelbl around x-axis speed (<1> * wheelSpeed); + spin wheelbr around x-axis speed (<1> * wheelSpeed); + sleep 66; + oldheading = heading; + } +} + +Create() +{ + hide lflare; + hide rflare; + restore_delay = 6000; + moveSpeed = get MAX_SPEED; + oldheading = get HEADING; + call-script TB_Init(); + start-script Steering(); + + gun_switch = 0; + + SLEEP_UNTIL_UNITFINISHED; + + turn radar to x-axis <-45> speed <25.0>; + spin radar around z-axis speed <60.0>; + start-script ExecuteRestoreAfterDelay(); +} + +StartMoving(reversing) +{ + signal SIGNAL_MOVE; + set-signal-mask SIGNAL_MOVE; + start-script Steering(); + START_TILTBANK; +} + +StopMoving() +{ + signal SIGNAL_MOVE; + + stop-spin wheelfl around x-axis; + stop-spin wheelfr around x-axis; + stop-spin wheelml around x-axis; + stop-spin wheelmr around x-axis; + stop-spin wheelbl around x-axis; + stop-spin wheelbr around x-axis; + STOP_TILTBANK; +} + + +SetMaxReloadTime(Func_Var_1) +{ + restore_delay = Func_Var_1 * 2; +} + +static-var Stunned; +ExecuteRestoreAfterDelay() +{ + if (Stunned) { + return (1); + } + turn sleeve to x-axis <-30> speed <25.00000>; + spin turret around y-axis speed <25.0>; + + sleep restore_delay; + wpn1_lasthead = 1000000; + set-signal-mask 0; +} + +SetStunned(State) +{ + Stunned = State; + if (!Stunned) { + start-script ExecuteRestoreAfterDelay(); + } +} + +RestoreAfterDelay() +{ + sleep restore_delay; + start-script ExecuteRestoreAfterDelay(); +} + +AimFromWeapon1(pieceIndex) +{ + pieceIndex = turret; +} + +AimWeapon1(heading, pitch) +{ + signal SIGNAL_AIM1; + set-signal-mask SIGNAL_AIM1; + + stop-spin turret around y-axis; + + turn turret to y-axis heading speed <240.0>; + turn sleeve to x-axis <0.0> - pitch speed <120.0>; + + //wait-for-turn turret around y-axis; + + wpn1_lasthead = heading; + start-script RestoreAfterDelay(); + return (1); +} + +FireWeapon1() +{ + spin lbarrel around z-axis speed <-2000.0>; + spin rbarrel around z-axis speed <2000.0>; + stop-spin lbarrel around z-axis decelerate <12>; + stop-spin rbarrel around z-axis decelerate <12>; + return (0); +} + +QueryWeapon1(piecenum) +{ + piecenum = lflare + gun_switch; + return (0); +} + +Shot1(zero) //Barrel switcher so each minigun fires at the same time +{ + signal SIGNAL_FIRE1; + set-signal-mask SIGNAL_FIRE1; + + + if(gun_switch == 0) + { + emit-sfx 1024 + 0 from rflare; + } + else + { + emit-sfx 1024 + 0 from lflare; + } + + gun_switch = !gun_switch; + return(1); +} + +SweetSpot(piecenum) +{ + piecenum = base; + return (0); +} +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode turret type BITMAPONLY | NOHEATCLOUD; + explode armor type BITMAPONLY | NOHEATCLOUD; + //explode flare1 type BITMAPONLY | NOHEATCLOUD; + //explode barrel2 type BITMAPONLY | NOHEATCLOUD; + //explode flare2 type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode turret type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode armor type FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode flare1 type FALL | NOHEATCLOUD; + //explode barrel2 type FALL | NOHEATCLOUD; + //explode flare2 type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turret type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode armor type SMOKE | FALL | NOHEATCLOUD; + //explode flare1 type SMOKE | FALL | NOHEATCLOUD; + //explode flare2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode turret type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode armor type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + //explode flare1 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + //explode flare2 type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legvflak.cob b/scripts/Units/legvflak.cob new file mode 100644 index 00000000000..fa0ccf18567 Binary files /dev/null and b/scripts/Units/legvflak.cob differ diff --git a/scripts/Units/legvp.bos b/scripts/Units/legvp.bos new file mode 100644 index 00000000000..1767af8164a --- /dev/null +++ b/scripts/Units/legvp.bos @@ -0,0 +1,165 @@ + +#include "../recoil_common_includes.h" +#include "../factories_common.h" + +piece flare1, flare2, flare3, flare4, pad, base, nanob, nanos, exhaust, ventsmoke, cagelight1, cagelight1_emit, cagelight2, cagelight2_emit; + +static-var spray; + +// Signal definitions +#define SIGNAL_BUILD 2 +#define SIGNAL_TURNON 4 + + +Create() +{ + hide pad; + hide ventsmoke; + hide flare1; + hide flare2; + hide flare3; + hide flare4; + hide cagelight1_emit; + hide cagelight2_emit; + spray = 0; +} + +#define BASEPIECE base +#define MAXTILT 0 +#include "../unit_hitbyweaponid_and_smoke.h" + +QueryNanoPiece(pieceIndex) +{ + spray = spray + 1; + if (spray >= 4) + { + spray = 0; + } + pieceIndex = flare1 + spray; +} + +Activate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + FACTORY_OPEN_BUILD; + + move exhaust to y-axis [0] speed [8]; +} + +Deactivate() +{ + signal SIGNAL_TURNON; + set-signal-mask SIGNAL_TURNON; + sleep 5000; + + turn nanos to x-axis 0 speed <30>; + turn nanob to z-axis 0 speed <30>; + wait-for-turn nanos around x-axis; + + move exhaust to y-axis [-8] speed [8]; + + + FACTORY_CLOSE_BUILD; +} + +MoveCranes() +{ + while(TRUE) + { + turn nanos to x-axis rand(-3000, 11000) speed <45>; + + sleep(400); + emit-sfx 257 from ventsmoke; + sleep(400); + emit-sfx 257 from ventsmoke; + + turn nanob to z-axis rand(-11000, 3000) speed <45>; + + sleep(400); + emit-sfx 257 from ventsmoke; + sleep(400); + emit-sfx 257 from ventsmoke; + } +} + + +StartBuilding() +{ + show flare1; + show flare2; + show flare3; + show flare4; + + show cagelight1_emit; + show cagelight2_emit; + move cagelight1 to x-axis [-1.7] speed [8]; + move cagelight2 to x-axis [-1.7] speed [8]; + spin cagelight1 around x-axis speed <200> accelerate <1>; + spin cagelight2 around x-axis speed <-200> accelerate <1>; + + signal SIGNAL_BUILD; + set-signal-mask SIGNAL_BUILD; + start-script MoveCranes(); +} + +StopBuilding() +{ + hide flare1; + hide flare2; + hide flare3; + hide flare4; + + hide cagelight1_emit; + hide cagelight2_emit; + move cagelight1 to x-axis [0] speed [8]; + move cagelight2 to x-axis [0] speed [8]; + stop-spin cagelight1 around x-axis decelerate <1>; + stop-spin cagelight2 around x-axis decelerate <1>; + + signal SIGNAL_BUILD; +} + +QueryBuildInfo(pieceIndex) +{ + pieceIndex = pad; +} + + + +Killed(severity, corpsetype) +{ + if( severity <= 25 ) + { + corpsetype = 1 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type BITMAPONLY | NOHEATCLOUD; + explode nanos type BITMAPONLY | NOHEATCLOUD; + explode nanob type BITMAPONLY | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 50 ) + { + corpsetype = 2 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanos type FALL | NOHEATCLOUD; + explode nanob type FIRE | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + if( severity <= 99 ) + { + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + explode nanos type FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanob type EXPLODE_ON_HIT | SMOKE | FALL | NOHEATCLOUD; + return(corpsetype); + } + corpsetype = 3 ; + explode base type BITMAPONLY | NOHEATCLOUD; + explode exhaust type EXPLODE_ON_HIT | FIRE | SMOKE | FALL | NOHEATCLOUD; + explode nanos type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + explode nanob type EXPLODE_ON_HIT | FIRE | FALL | NOHEATCLOUD; + return corpsetype; +} diff --git a/scripts/Units/legvp.cob b/scripts/Units/legvp.cob new file mode 100644 index 00000000000..92a83396427 Binary files /dev/null and b/scripts/Units/legvp.cob differ diff --git a/scripts/Units/scavboss/corforge.bos b/scripts/Units/scavboss/corforge.bos index 61ebaf24ee1..8d4fb5d4582 100644 --- a/scripts/Units/scavboss/corforge.bos +++ b/scripts/Units/scavboss/corforge.bos @@ -17,8 +17,12 @@ static-var restore_delay, last_primary_heading; #define UNITSIZE 3 #define MAXTILT 100 -#include "../unit_hitbyweaponid_and_smoke.h" +#include "unit_hitbyweaponid_and_smoke.h" +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} PilotLight(Func_Var_1) { @@ -110,6 +114,7 @@ FirePrimary() Shot1(zero) { + call-script lua_FlameShot(1); emit-sfx 1024 + 1 from flare; } diff --git a/scripts/Units/scavboss/corforge.cob b/scripts/Units/scavboss/corforge.cob index 203f7d494eb..2d1ba002377 100644 Binary files a/scripts/Units/scavboss/corforge.cob and b/scripts/Units/scavboss/corforge.cob differ diff --git a/scripts/Units/scavboss/corthermite.bos b/scripts/Units/scavboss/corthermite.bos index fa970763c4a..6570386c8c0 100644 --- a/scripts/Units/scavboss/corthermite.bos +++ b/scripts/Units/scavboss/corthermite.bos @@ -241,7 +241,7 @@ StopMoving() #define UNITSIZE 8 #define MAXTILT 100 -#include "../unit_hitbyweaponid_and_smoke.h" +#include "unit_hitbyweaponid_and_smoke.h" Create() { @@ -267,6 +267,10 @@ Create() //start-script puff(); } +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} lua_UnitScriptLight(lightIndex, count) { return 0; @@ -482,6 +486,8 @@ QuerySecondary(piecenum) Shot2() { shotcount2 = shotcount2 + 1; call-script lua_UnitScriptLight(3, shotcount2); + + call-script lua_FlameShot(2); emit-sfx 1024 + 0 from flameflarer; } diff --git a/scripts/Units/scavboss/corthermite.cob b/scripts/Units/scavboss/corthermite.cob index f658a0ea4df..2a3e9eaad7e 100644 Binary files a/scripts/Units/scavboss/corthermite.cob and b/scripts/Units/scavboss/corthermite.cob differ diff --git a/scripts/Units/scavbuildings/scavdtf.bos b/scripts/Units/scavbuildings/scavdtf.bos index f0933bd149d..77837ce36f8 100644 --- a/scripts/Units/scavbuildings/scavdtf.bos +++ b/scripts/Units/scavbuildings/scavdtf.bos @@ -10,6 +10,10 @@ static-var Static_Var_1, restore_delay, statechg_DesiredState, statechg_StateCh // Signal definitions #define SIG_AIM 2 +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} SmokeUnit(healthpercent, sleeptime, smoketype) { @@ -165,6 +169,7 @@ AimPrimary(heading, pitch) Shot1() { + call-script lua_FlameShot(1); emit-sfx 1024 + 0 from firepoint; return (TRUE); } diff --git a/scripts/Units/scavbuildings/scavdtf.cob b/scripts/Units/scavbuildings/scavdtf.cob index 1a490ace674..b174b66af49 100644 Binary files a/scripts/Units/scavbuildings/scavdtf.cob and b/scripts/Units/scavbuildings/scavdtf.cob differ diff --git a/scripts/Units/smart_weapon_select.h b/scripts/Units/smart_weapon_select.h new file mode 100644 index 00000000000..7e74a277020 --- /dev/null +++ b/scripts/Units/smart_weapon_select.h @@ -0,0 +1,51 @@ +/* +Header Name: Smart Weapon Select +Purpose: Automatically switch between a preferred and backup weapon (E.G high/low trajectory) +Author: SethDGamre SethDGamre@Gmail.com +License: GPL V2.0 + +By including this header file, you can have two weapons dynamically selected. AIMING_PRIORITY trajectory is preferred +and if it fails AIMING_BACKUP is allowed to steal for a period of time outlined in the #defines below. This aiming +script is required to work in conjunction with a gadget unit_weapon_smart_select_helper.lua which handles and feeds +to this script the manual targetting events. + +.bos script integration checklist: + +1. somewhere before Create() function: +#include "smart_weapon_select.h" + +2. in the preferred AimWeaponX() function, add the following at the beginning: + if (AimingState != AIMING_PRIORITY) + { + return(0); + } +3. in the deferred AimWeaponX() function, add the following at the beginning: + if (AimingState != AIMING_BACKUP) + { + return(0); + } +4. If using a dummy weapon, return (0); in its AimWeaponX() function and QueryWeaponX(piecenum) should be set to a static piece lower than the turret. + This is necessary until engine changes allow for abritrary XYZ source coordinates for cannon projectiles in Spring.GetWeaponHaveFreeLineOfFire. At which point, + dummy weapons should be removed and source position should be fed directly into the function via the gadget unit_weapon_smart_select_helper.lua + + */ + +#ifndef __SMARTSELECT_H_ + +static-var AimingState; + +#define __SMARTSELECT_H_ + +#define AIMING_PRIORITY 1 +#define AIMING_BACKUP 2 + +SetAimingState(newState) +{ + if (newState == AIMING_PRIORITY){ + AimingState = AIMING_PRIORITY; + } else{ + AimingState = AIMING_BACKUP; + } +} + +#endif diff --git a/scripts/scavs/scavdtf.bos b/scripts/scavs/scavdtf.bos index 02edb18299e..362777ab722 100644 --- a/scripts/scavs/scavdtf.bos +++ b/scripts/scavs/scavdtf.bos @@ -10,6 +10,11 @@ static-var Static_Var_1, restore_delay, statechg_DesiredState, statechg_StateCh // Signal definitions #define SIG_AIM 2 +lua_FlameShot(weapon) //Distortion and lups flame effect +{ + return 0; +} + SmokeUnit(healthpercent, sleeptime, smoketype) { while( get BUILD_PERCENT_LEFT ) @@ -166,6 +171,7 @@ AimPrimary(heading, pitch) Shot1() { + call-script lua_FlameShot(1); emit-sfx 1024 + 0 from firepoint; return (TRUE); } diff --git a/scripts/scavs/scavdtf.cob b/scripts/scavs/scavdtf.cob index 00f35ea8494..0e35c52618b 100644 Binary files a/scripts/scavs/scavdtf.cob and b/scripts/scavs/scavdtf.cob differ diff --git a/shaders/GLSL/lava/lava.frag.glsl b/shaders/GLSL/lava/lava.frag.glsl new file mode 100644 index 00000000000..205e4f41203 --- /dev/null +++ b/shaders/GLSL/lava/lava.frag.glsl @@ -0,0 +1,138 @@ +#version 330 +#extension GL_ARB_uniform_buffer_object : require +#extension GL_ARB_shading_language_420pack: require + +// This shader is Copyright (c) 2024 Beherith (mysterme@gmail.com) and licensed under the MIT License + +#line 20000 + +uniform float lavaHeight; +uniform float heatdistortx; +uniform float heatdistortz; + +uniform sampler2D heightmapTex; +uniform sampler2D lavaDiffuseEmit; +uniform sampler2D lavaNormalHeight; +uniform sampler2D lavaDistortion; +uniform sampler2DShadow shadowTex; +uniform sampler2D infoTex; + +in DataVS { + vec4 worldPos; + vec4 worldUV; + float inboundsness; + vec4 randpervertex; +}; + +//__ENGINEUNIFORMBUFFERDEFS__ +//__DEFINES__ + +vec2 inverseMapSize = 1.0 / mapSize.xy; + +float heightAtWorldPos(vec2 w){ + // Some texel magic to make the heightmap tex perfectly align: + const vec2 heightmaptexel = vec2(8.0, 8.0); + w += vec2(-8.0, -8.0) * (w * inverseMapSize) + vec2(4.0, 4.0) ; + + vec2 uvhm = clamp(w, heightmaptexel, mapSize.xy - heightmaptexel); + uvhm = uvhm * inverseMapSize; + + return texture(heightmapTex, uvhm, 0.0).x; +} + +out vec4 fragColor; + +#line 22000 + + +void main() { + + vec4 camPos = cameraViewInv[3]; + vec3 worldtocam = camPos.xyz - worldPos.xyz; + + // Sample emissive as heat indicator here for later displacement + vec4 nodiffuseEmit = texture(lavaDiffuseEmit, worldUV.xy * WORLDUVSCALE ); + + vec2 rotatearoundvertices = worldUV.zw * SWIRLAMPLITUDE; + + float localheight = OUTOFMAPHEIGHT ; + if (inboundsness > 0) + localheight = heightAtWorldPos(worldPos.xz); + + if (localheight > lavaHeight - HEIGHTOFFSET ) discard; + + // Calculate how far the fragment is from the coast + float coastfactor = clamp((localheight-lavaHeight + COASTWIDTH + HEIGHTOFFSET) * (1.0 / COASTWIDTH), 0.0, 1.0); + + // this is ramp function that ramps up for 90% of the coast, then ramps down at the last 10% of coastwidth + if (coastfactor > 0.90) + {coastfactor = 9*( 1.0 - coastfactor); + coastfactor = pow(coastfactor/0.9, 1.0); + }else{ + coastfactor = pow(coastfactor/0.9, 3.0); + } + + // Sample shadow map for shadow factor: + vec4 shadowVertexPos = shadowView * vec4(worldPos.xyz,1.0); + shadowVertexPos.xy += vec2(0.5); + float shadow = clamp(textureProj(shadowTex, shadowVertexPos), 0.0, 1.0); + + // Sample LOS texture for LOS, and scale it into a sane range + vec2 losUV = clamp(worldPos.xz, vec2(0.0), mapSize.xy ) / mapSize.zw; + float losTexSample = dot(vec3(0.33), texture(infoTex, losUV).rgb) ; // lostex is PO2 + losTexSample = clamp(losTexSample * 4.0 - 1.0, LOSDARKNESS, 1.0); + if (inboundsness < 0.0) losTexSample = 1.0; + + // We shift the distortion texture camera-upwards according to the uniforms that got passed in + vec2 camshift = vec2(heatdistortx, heatdistortz) * 0.001; + vec4 distortionTexture = texture(lavaDistortion, (worldUV.xy + camshift) * 45.2) ; + + vec2 distortion = distortionTexture.xy * 0.2 * 0.02; + distortion.xy *= clamp(nodiffuseEmit.a * 0.5 + coastfactor, 0.2, 2.0); + + vec2 diffuseNormalUVs = worldUV.xy * WORLDUVSCALE + distortion.xy + rotatearoundvertices; + vec4 normalHeight = texture(lavaNormalHeight, diffuseNormalUVs); + + // Perform optional parallax mapping + #if (PARALLAXDEPTH > 0 ) + vec3 viewvec = normalize(worldtocam * -1.0); + float pdepth = PARALLAXDEPTH * (PARALLAXOFFSET - normalHeight.a ) * (1.0 - coastfactor); + diffuseNormalUVs += pdepth * viewvec.xz * 0.002; + normalHeight = texture(lavaNormalHeight, diffuseNormalUVs); + #endif + + vec4 diffuseEmit = texture(lavaDiffuseEmit , diffuseNormalUVs); + + fragColor.rgba = diffuseEmit; + + // Calculate lighting based on normal map + vec3 fragNormal = (normalHeight.xzy * 2.0 -1.0); + fragNormal.z = -1 * fragNormal.z; // for some goddamned reason Z(G) is inverted again + fragNormal = normalize(fragNormal); + float lightamount = clamp(dot(sunDir.xyz, fragNormal), 0.2, 1.0) * max(0.5,shadow); + fragColor.rgb *= lightamount; + + fragColor.rgb += COASTCOLOR * coastfactor; + + // Specular Color + vec3 reflvect = reflect(normalize(-1.0 * sunDir.xyz), normalize(fragNormal)); + float specular = clamp(pow(dot(normalize(worldtocam), normalize(reflvect)), SPECULAREXPONENT), 0.0, SPECULARSTRENGTH) * shadow; + fragColor.rgb += fragColor.rgb * specular; + + fragColor.rgb += fragColor.rgb * (diffuseEmit.a * distortion.y * 700.0); + + fragColor.rgb *= losTexSample; + + // some debugging stuff: + //fragColor.rgb = fragNormal.xzy; + //fragColor.rgb = vec3(losTexSample); + //fragColor.rgb = vec3(shadow); + //fragColor.rgb = distortionTexture.rgb ; + //fragColor.rg = worldUV.zw ; + //fragColor.rgba *= vec4(fract(hmap*0.05)); + //fragColor.rgb = vec3(randpervertex.w * 0.5 + 0.5); + //fragColor.rgb = fract(4*vec3(coastfactor)); + fragColor.a = 1.0; + fragColor.a = clamp( inboundsness * 2.0 +2.0, 0.0, 1.0); + SWIZZLECOLORS +} diff --git a/shaders/GLSL/lava/lava.vert.glsl b/shaders/GLSL/lava/lava.vert.glsl new file mode 100644 index 00000000000..fa393eeade9 --- /dev/null +++ b/shaders/GLSL/lava/lava.vert.glsl @@ -0,0 +1,58 @@ +#version 420 +#extension GL_ARB_uniform_buffer_object : require +#extension GL_ARB_shader_storage_buffer_object : require +#extension GL_ARB_shading_language_420pack: require + +// This shader is Copyright (c) 2024 Beherith (mysterme@gmail.com) and licensed under the MIT License + +#line 10000 +layout (location = 0) in vec2 planePos; + +uniform float lavaHeight; + +out DataVS { + vec4 worldPos; + vec4 worldUV; + float inboundsness; + vec4 randpervertex; +}; +//__DEFINES__ +//__ENGINEUNIFORMBUFFERDEFS__ + +#line 11000 + +vec2 inverseMapSize = 1.0 / mapSize.xy; + +float rand(vec2 co){ // a pretty crappy random function + return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); +} + +void main() { + // mapSize.xy is the actual map size, + //place the vertices into the world: + worldPos.y = lavaHeight; + worldPos.w = 1.0; + worldPos.xz = (1.5 * planePos +0.5) * mapSize.xy; + + // pass the world-space UVs out + float mapratio = mapSize.y / mapSize.x; + worldUV.xy = (1.5 * planePos +0.5); + worldUV.y *= mapratio; + + float gametime = (timeInfo.x + timeInfo.w) * SWIRLFREQUENCY; + + randpervertex = vec4(rand(worldPos.xz), rand(worldPos.xz * vec2(17.876234, 9.283)), rand(worldPos.xz + gametime + 2.0), rand(worldPos.xz + gametime + 3.0)); + worldUV.zw = sin(randpervertex.xy + gametime * (0.5 + randpervertex.xy)); + + // global rotatemove, has 2 params, globalrotateamplitude, globalrotatefrequency + // Spin the whole texture around slowly + float worldRotTime = (timeInfo.x + timeInfo.w) ; + worldUV.xy += vec2( sin(worldRotTime * GLOBALROTATEFREQUENCY), cos(worldRotTime * GLOBALROTATEFREQUENCY)) * GLOBALROTATEAMPLIDUE; + + // -- MAP OUT OF BOUNDS + vec2 mymin = min(worldPos.xz, mapSize.xy - worldPos.xz) * inverseMapSize; + inboundsness = min(mymin.x, mymin.y); + + // Assign world position: + gl_Position = cameraViewProj * worldPos; +} diff --git a/shaders/GLSL/lava/lava_fog_light.frag.glsl b/shaders/GLSL/lava/lava_fog_light.frag.glsl new file mode 100644 index 00000000000..901e56d2a35 --- /dev/null +++ b/shaders/GLSL/lava/lava_fog_light.frag.glsl @@ -0,0 +1,100 @@ +#version 330 +#extension GL_ARB_uniform_buffer_object : require +#extension GL_ARB_shading_language_420pack: require + +// This shader is Copyright (c) 2024 Beherith (mysterme@gmail.com) and licensed under the MIT License + +#line 20000 + +uniform float lavaHeight; +uniform float heatdistortx; +uniform float heatdistortz; + +uniform sampler2D mapDepths; +uniform sampler2D modelDepths; +uniform sampler2D lavaDistortion; +//uniform sampler2D mapNormals; +//uniform sampler2D modelNormals; + +in DataVS { + vec4 worldPos; + vec4 worldUV; + float inboundsness; + noperspective vec2 v_screenUV; +}; + +//__ENGINEUNIFORMBUFFERDEFS__ +//__DEFINES__ + +vec2 inverseMapSize = 1.0 / mapSize.xy; + +out vec4 fragColor; + +#line 22000 +void main() { + + vec4 camPos = cameraViewInv[3]; + + // We shift the distortion texture camera-upwards according to the uniforms that got passed in + vec2 camshift = vec2(heatdistortx, heatdistortz) * 0.01; + + //Get the fragment depth + // note that WE CANT GO LOWER THAN THE ACTUAL LAVA LEVEL! + + vec2 screenUV = clamp(v_screenUV, 1.0/(viewGeometry.xy), 1.0 - 1.0/ (viewGeometry.xy)); + + // Sample the depth buffers, and choose whichever is closer to the screen + float mapdepth = texture(mapDepths, screenUV).x; + float modeldepth = texture(modelDepths, screenUV).x; + mapdepth = min(mapdepth, modeldepth); + + // the W weight factor here is incorrect, as it comes from the depth buffers, and not the fragments own depth. + + // Convert to normalized device coordinates, and calculate inverse view projection + vec4 mapWorldPos = vec4( vec3(screenUV.xy * 2.0 - 1.0, mapdepth), 1.0); + mapWorldPos = cameraViewProjInv * mapWorldPos; + mapWorldPos.xyz = mapWorldPos.xyz/ mapWorldPos.w; // YAAAY this works! + float trueFragmentHeight = mapWorldPos.y; + + float fogAboveLava = 1.0; + + // clip mapWorldPos according to true lava height + if (mapWorldPos.y< lavaHeight - FOGHEIGHTABOVELAVA - HEIGHTOFFSET) { + // we need to make a vector from cam to fogplane position + vec3 camtofogplane = mapWorldPos.xyz - camPos.xyz; + + // and scale it to make it + camtofogplane = FOGHEIGHTABOVELAVA * camtofogplane /abs(camtofogplane.y); + mapWorldPos.xyz = worldPos.xyz + camtofogplane; + fogAboveLava = FOGABOVELAVA; + } + + // Calculate how long the vector from top of foglightplane to lava or world pos actually is + float actualfogdepth = length(mapWorldPos.xyz - worldPos.xyz) ; + float fogAmount = 1.0 - exp2(- FOGFACTOR * FOGFACTOR * actualfogdepth * 0.5); + fogAmount *= fogAboveLava; + + // sample the distortiontexture according to camera shift and scale it down + vec4 distortionTexture = texture(lavaDistortion, (worldUV.xy * 22.0 + camshift)) ; + float fogdistort = (FOGLIGHTDISTORTION + distortionTexture.x + distortionTexture.y)/ FOGLIGHTDISTORTION ; + + + // apply some distortion to the fog + fogAmount *= fogdistort; + + + // lets add some extra brigtness near the coasts, by finding the distance of the lavaplane to the coast + float disttocoast = abs(trueFragmentHeight- (lavaHeight - FOGHEIGHTABOVELAVA - HEIGHTOFFSET)); + + float extralightcoast = clamp(1.0 - disttocoast * (1.0 / COASTWIDTH), 0.0, 1.0); + extralightcoast = pow(extralightcoast, 3.0) * EXTRALIGHTCOAST; + + fogAmount += extralightcoast; + + fragColor.rgb = FOGCOLOR; + fragColor.a = fogAmount; + + // fade out the foglightplane if it is far out of bounds + fragColor.a *= clamp( inboundsness * 2.0 +2.0, 0.0, 1.0); + SWIZZLECOLORS +} diff --git a/shaders/GLSL/lava/lava_fog_light.vert.glsl b/shaders/GLSL/lava/lava_fog_light.vert.glsl new file mode 100644 index 00000000000..168bc3d0fbd --- /dev/null +++ b/shaders/GLSL/lava/lava_fog_light.vert.glsl @@ -0,0 +1,56 @@ +#version 420 +#extension GL_ARB_uniform_buffer_object : require +#extension GL_ARB_shader_storage_buffer_object : require +#extension GL_ARB_shading_language_420pack: require + +// This shader is Copyright (c) 2024 Beherith (mysterme@gmail.com) and licensed under the MIT License + +#line 10000 +layout (location = 0) in vec2 planePos; + +uniform float lavaHeight; + +out DataVS { + vec4 worldPos; + vec4 worldUV; + float inboundsness; + noperspective vec2 v_screenUV; +}; +//__DEFINES__ +//__ENGINEUNIFORMBUFFERDEFS__ + +#line 11000 + +#define SNORM2NORM(value) (value * 0.5 + 0.5) + +vec2 inverseMapSize = 1.0 / mapSize.xy; + +float rand(vec2 co){ // a pretty crappy random function + return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); +} + +void main() { + // mapSize.xy is the actual map size, + //place the vertices into the world: + worldPos.y = lavaHeight; + worldPos.w = 1.0; + worldPos.xz = (1.5 * planePos +0.5) * mapSize.xy; + + // pass the world-space UVs out + float mapratio = mapSize.y / mapSize.x; + worldUV.xy = (1.5 * planePos +0.5); + worldUV.y *= mapratio; + + float gametime = (timeInfo.x + timeInfo.w) * 0.006666; + + vec4 randpervertex = vec4(rand(worldPos.xz), rand(worldPos.xz * vec2(17.876234, 9.283)), rand(worldPos.xz + gametime + 2.0), rand(worldPos.xz + gametime + 3.0)); + worldUV.zw = sin(randpervertex.xy + gametime * (0.5 + randpervertex.xy)); + + // -- MAP OUT OF BOUNDS + vec2 mymin = min(worldPos.xz, mapSize.xy - worldPos.xz) * inverseMapSize; + inboundsness = min(mymin.x, mymin.y); + + // Assign world position: + gl_Position = cameraViewProj * worldPos; + v_screenUV = SNORM2NORM(gl_Position.xy / gl_Position.w); +} diff --git a/unitbasedefs/proposed_unit_reworks_defs.lua b/unitbasedefs/proposed_unit_reworks_defs.lua index 8ec5bd1d2a6..e9f559a4d07 100644 --- a/unitbasedefs/proposed_unit_reworks_defs.lua +++ b/unitbasedefs/proposed_unit_reworks_defs.lua @@ -1,5 +1,95 @@ local function proposed_unit_reworksTweaks(name, uDef) + + if name == "armsolar" then + uDef.buildtime = 2600 + end + if name == "armwin" then + uDef.metalcost = 40 + end + if name == "corwin" then + uDef.metalcost = 43 + uDef.health = 220 + end + if name == "armtide" then + uDef.energycost = 200 + end + if name == "armadvsolar" then + uDef.metalcost = 350 + end + if name == "corcv" then + uDef.workertime = 95 + end + if name == "corca" then + uDef.workertime = 65 + end + if name == "corck" then + uDef.workertime = 85 + end + if name == "cormuskrat" then + uDef.workertime = 85 + end + if name == "coracv" then + uDef.workertime = 265 + end + if name == "corack" then + uDef.workertime = 190 + end + if name == "coraca" then + uDef.workertime = 105 + end + if name == "corch" then + uDef.workertime = 115 + end + if name == "corexp" then + uDef.buildtime = 2900 + end + + + + if name == "corgator" then + uDef.buildtime = 2200 + uDef.sightdistance = 330 + end + if name == "armflash" then + uDef.sightdistance = 350 + uDef.health = 725 + end + if name == "armflea" then + uDef.metalcost = 20 + uDef.energycost = 300 + uDef.sightdistance = 500 + end + if name == "armpw" then + uDef.metalcost = 54 + uDef.energycost = 870 + uDef.health = 370 + end + if name == "corak" then + uDef.metalcost = 48 + uDef.energycost = 840 + uDef.turnrate = 1200 + uDef.maxacc = 0.4 + uDef.maxdec = 0.7 + --uDef.health = 300 + end + if name == "armfav" then + uDef.health = 103 + end + if name == "corfav" then + uDef.health = 87 + end + + if name == "corbw" then + uDef.weapondefs.bladewing_lyzer.reloadtime = 1.4 + end + if name == "armkam" then + uDef.health = 560 + end + if name == "armthund" then + uDef.weapondefs.armbomb.burstrate = 0.25 + end + return uDef end diff --git a/unitbasedefs/skyshiftunits_post.lua b/unitbasedefs/skyshiftunits_post.lua index 26963c0ff95..4ab1573ce2e 100644 --- a/unitbasedefs/skyshiftunits_post.lua +++ b/unitbasedefs/skyshiftunits_post.lua @@ -8,7 +8,7 @@ local function skyshiftUnitTweaks(name, uDef) if name == "armca" then uDef.health = 720 end - + if name == "armpeep" then uDef.acceleration = 0.8 uDef.blocking = false @@ -51,7 +51,7 @@ local function skyshiftUnitTweaks(name, uDef) uDef.wingangle = 0.06315 uDef.wingdrag = 0.0575 end - + if name == "armfig" then uDef.acceleration = 0.6 uDef.airsightdistance = 950 @@ -138,7 +138,7 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + if name == "armthund" then uDef.acceleration = 0.3 uDef.maxdec = 0.3 @@ -220,11 +220,10 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + if name == "armkam" then uDef.acceleration = 0.7 uDef.airstrafe = false - uDef.attackSafetyDistance = 200 uDef.blocking = false uDef.energycost = 2600 uDef.metalcost = 240 @@ -318,12 +317,11 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + if name == "armsfig" then uDef.acceleration = 0.35 uDef.airsightdistance = 950 uDef.airstrafe = false - uDef.attackSafetyDistance = 40 uDef.blocking = false uDef.maxdec = 0.1 uDef.energycost = 440 @@ -467,7 +465,7 @@ local function skyshiftUnitTweaks(name, uDef) if name == "corca" then uDef.health = 720 end - + if name == "corveng" then uDef.acceleration = 0.45 uDef.airsightdistance = 950 @@ -558,7 +556,7 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + if name == "corshad" then uDef.acceleration = 0.045 uDef.blocking = false @@ -637,10 +635,9 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + if name == "corbw" then - uDef.acceleration = 0.5 - uDef.attackSafetyDistance = 40 + uDef.acceleration = 0.5 uDef.blocking = false uDef.maxdec = 0.4 uDef.energycost = 700 @@ -731,11 +728,10 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + if name == "corcut" then uDef.acceleration = 1 uDef.airstrafe = false - uDef.attackSafetyDistance = 200 uDef.blocking = false uDef.maxdec = 0.85 uDef.energycost = 2600 @@ -812,21 +808,21 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + --------------------------------------------- -------------------- ---CORTEX AIR T2 --- -------------------- ---------------------------------------------- - - - - - - - - - +--------------------------------------------- + + + + + + + + + --------------------------------------------- -------------------- ----GROUND UNITS---- @@ -841,7 +837,7 @@ local function skyshiftUnitTweaks(name, uDef) end end end - + if name == "armsam" then uDef.energycost = 1350 uDef.buildtime = 2000 @@ -857,7 +853,7 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - + if name == "cormist" then uDef.energycost = 1400 uDef.buildtime = 2000 @@ -873,16 +869,16 @@ local function skyshiftUnitTweaks(name, uDef) }, } end - - - - - - - - - - + + + + + + + + + + --------------------------------------------- -------------------- ----BUILDOPTIONS---- @@ -895,7 +891,7 @@ local function skyshiftUnitTweaks(name, uDef) if name == "corap" then uDef.buildoptions[7] = "corcut" end - + return uDef end @@ -910,15 +906,14 @@ end --[[ local function skyshiftWeaponTweaks(name, wDef) - + --wDef.damage.vtol = wDef.damage.default return wDef - + end ]] return { skyshiftUnitTweaks = skyshiftUnitTweaks, --skyshiftWeaponTweaks = skyshiftWeaponTweaks, } - \ No newline at end of file diff --git a/unitpics/armgatet3.dds b/unitpics/armgatet3.dds new file mode 100644 index 00000000000..c5003728170 Binary files /dev/null and b/unitpics/armgatet3.dds differ diff --git a/unitpics/armptl.dds b/unitpics/armptl.dds deleted file mode 100644 index b1456e8d92e..00000000000 Binary files a/unitpics/armptl.dds and /dev/null differ diff --git a/unitpics/corgatet3.dds b/unitpics/corgatet3.dds new file mode 100644 index 00000000000..6b56eb8396e Binary files /dev/null and b/unitpics/corgatet3.dds differ diff --git a/unitpics/corptl.dds b/unitpics/corptl.dds deleted file mode 100644 index 3cb50a9097d..00000000000 Binary files a/unitpics/corptl.dds and /dev/null differ diff --git a/unitpics/corsumo.dds b/unitpics/corsumo.dds index 12b8c7f4eee..8c41f2cac0d 100644 Binary files a/unitpics/corsumo.dds and b/unitpics/corsumo.dds differ diff --git a/unitpics/legaap.dds b/unitpics/legaap.dds index 5fc9c09421f..cccb35608b9 100644 Binary files a/unitpics/legaap.dds and b/unitpics/legaap.dds differ diff --git a/unitpics/legafus.dds b/unitpics/legafus.dds new file mode 100644 index 00000000000..b61e3c9e413 Binary files /dev/null and b/unitpics/legafus.dds differ diff --git a/unitpics/legalab.dds b/unitpics/legalab.dds index 5489127327c..5c01f916ff7 100644 Binary files a/unitpics/legalab.dds and b/unitpics/legalab.dds differ diff --git a/unitpics/legap.dds b/unitpics/legap.dds index 0862d7ca864..6301a5e0ef2 100644 Binary files a/unitpics/legap.dds and b/unitpics/legap.dds differ diff --git a/unitpics/legatorpbomber.dds b/unitpics/legatorpbomber.dds new file mode 100644 index 00000000000..88f4a613d1c Binary files /dev/null and b/unitpics/legatorpbomber.dds differ diff --git a/unitpics/legavjam.dds b/unitpics/legavjam.dds new file mode 100644 index 00000000000..452ef10b97b Binary files /dev/null and b/unitpics/legavjam.dds differ diff --git a/unitpics/legavp.dds b/unitpics/legavp.dds index 96bf6b6ab91..51098b5d9bd 100644 Binary files a/unitpics/legavp.dds and b/unitpics/legavp.dds differ diff --git a/unitpics/legavrad.dds b/unitpics/legavrad.dds new file mode 100644 index 00000000000..e1e49d243fc Binary files /dev/null and b/unitpics/legavrad.dds differ diff --git a/unitpics/legch.dds b/unitpics/legch.dds index c6f59ca2304..a12ba57162a 100644 Binary files a/unitpics/legch.dds and b/unitpics/legch.dds differ diff --git a/unitpics/legerailtank.dds b/unitpics/legerailtank.dds new file mode 100644 index 00000000000..01160b6de2e Binary files /dev/null and b/unitpics/legerailtank.dds differ diff --git a/unitpics/legflak.dds b/unitpics/legflak.dds index dfc941b0e7d..6eac1866994 100644 Binary files a/unitpics/legflak.dds and b/unitpics/legflak.dds differ diff --git a/unitpics/legfus.dds b/unitpics/legfus.dds new file mode 100644 index 00000000000..b6b43ed5a3a Binary files /dev/null and b/unitpics/legfus.dds differ diff --git a/unitpics/leghp.dds b/unitpics/leghp.dds index cfac667a33d..2da807593da 100644 Binary files a/unitpics/leghp.dds and b/unitpics/leghp.dds differ diff --git a/unitpics/legjav.dds b/unitpics/legjav.dds new file mode 100644 index 00000000000..281359625f4 Binary files /dev/null and b/unitpics/legjav.dds differ diff --git a/unitpics/legphoenix.dds b/unitpics/legphoenix.dds index 2774b190d68..5d0ff5dbdf1 100644 Binary files a/unitpics/legphoenix.dds and b/unitpics/legphoenix.dds differ diff --git a/unitpics/legvflak.dds b/unitpics/legvflak.dds new file mode 100644 index 00000000000..22c3976b575 Binary files /dev/null and b/unitpics/legvflak.dds differ diff --git a/unitpics/legvp.dds b/unitpics/legvp.dds index edda51a4b78..be235a83547 100644 Binary files a/unitpics/legvp.dds and b/unitpics/legvp.dds differ diff --git a/unitpics/scavengers/armptl.dds b/unitpics/scavengers/armptl.dds deleted file mode 100644 index ce9ca3ddc31..00000000000 Binary files a/unitpics/scavengers/armptl.dds and /dev/null differ diff --git a/unitpics/scavengers/corptl.dds b/unitpics/scavengers/corptl.dds deleted file mode 100644 index 9ae897332d2..00000000000 Binary files a/unitpics/scavengers/corptl.dds and /dev/null differ diff --git a/units/ArmAircraft/T2/armlance.lua b/units/ArmAircraft/T2/armlance.lua index 08d60b539e5..e46afa18af6 100644 --- a/units/ArmAircraft/T2/armlance.lua +++ b/units/ArmAircraft/T2/armlance.lua @@ -8,8 +8,8 @@ return { cruisealtitude = 90, energycost = 8000, explodeas = "mediumExplosionGeneric", - footprintx = 3, - footprintz = 3, + footprintx = 4, + footprintz = 4, health = 1920, idleautoheal = 5, idletime = 1800, diff --git a/units/ArmBots/T2/armmav.lua b/units/ArmBots/T2/armmav.lua index 4d468bee30a..4cdc06b4799 100644 --- a/units/ArmBots/T2/armmav.lua +++ b/units/ArmBots/T2/armmav.lua @@ -108,7 +108,6 @@ return { alphadecay = 0.1, areaofeffect = 8, avoidfeature = false, - cegtag = "impulse-trail", craterareaofeffect = 0, craterboost = 0, cratermult = 0, @@ -123,12 +122,12 @@ return { predictboost = 0.3, range = 365, reloadtime = 1, - separation = 1.6, - sizedecay = 0.04, + separation = 1, + sizedecay = 0.01, soundhit = "xplomed5", soundhitwet = "splshbig", soundstart = "mavgun4", - stages = 16, + stages = 12, tolerance = 4000, turret = true, weapontype = "Cannon", diff --git a/units/ArmBots/T2/armscab.lua b/units/ArmBots/T2/armscab.lua index 136b576b783..7f0beca6eff 100644 --- a/units/ArmBots/T2/armscab.lua +++ b/units/ArmBots/T2/armscab.lua @@ -148,6 +148,9 @@ return { weapontimer = 2, weapontype = "StarburstLauncher", weaponvelocity = 7000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 500, }, diff --git a/units/ArmBuildings/LandDefenceOffence/armamb.lua b/units/ArmBuildings/LandDefenceOffence/armamb.lua index d00d2bbdba7..5e389b01b57 100644 --- a/units/ArmBuildings/LandDefenceOffence/armamb.lua +++ b/units/ArmBuildings/LandDefenceOffence/armamb.lua @@ -26,7 +26,6 @@ return { mincloakdistance = 70, nochasecategory = "MOBILE", objectname = "Units/ARMAMB.s3o", - onoffable = true, script = "Units/ARMAMB.cob", seismicsignature = 0, selfdestructas = "smallBuildingExplosionGenericSelfd", @@ -40,7 +39,6 @@ return { buildinggrounddecaltype = "decals/armamb_aoplane.dds", model_author = "Beherith", normaltex = "unittextures/Arm_normal.dds", - onoffname = "trajectory", removewait = true, subfolder = "ArmBuildings/LandDefenceOffence", techlevel = 2, @@ -122,8 +120,8 @@ return { edgeeffectiveness = 0.4, explosiongenerator = "custom:genericshellexplosion-medium-aoe", gravityaffected = "true", - impulsefactor = 0.8, - name = "Pop-up heavy long range g2g plasna cannon", + impulsefactor = 0.5, + name = "Pop-up heavy long range g2g plasma cannon", noselfdamage = true, predictboost = 0.2, range = 1380, @@ -140,40 +138,71 @@ return { vtol = 90, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_priority = true, } }, armamb_gun_high = { accuracy = 400, - areaofeffect = 224, + areaofeffect = 152, avoidfeature = false, - cegtag = "arty-huge", - craterareaofeffect = 224, - craterboost = 0.0492, - cratermult = 0.0492, - edgeeffectiveness = 0.65, - explosiongenerator = "custom:genericshellexplosion-large-bomb", + cegtag = "arty-heavy", + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.4, + explosiongenerator = "custom:genericshellexplosion-medium-aoe", gravityaffected = "true", hightrajectory = 1, - impulsefactor = 2, - name = "Pop-up high-trajectory heavy long range AoE g2g plasma cannon", + impulsefactor = 0.5, + name = "Pop-up heavy long range g2g plasna cannon", noselfdamage = true, - proximitypriority = -1, + predictboost = 0.2, range = 1380, - reloadtime = 7, - soundhit = "xplolrg4", + reloadtime = 1.8, + soundhit = "xplomed2", soundhitwet = "splslrg", - soundstart = "cannhvy6", + soundstart = "cannhvy5", turret = true, weapontype = "Cannon", - weaponvelocity = 440, + weaponvelocity = 450, damage = { - default = 850, + default = 350, subs = 150, vtol = 90, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_backup = true, + } + }, + smart_trajectory_dummy = { + accuracy = 400, + areaofeffect = 152, + avoidfeature = false, + cegtag = "arty-heavy", + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.4, + explosiongenerator = "custom:genericshellexplosion-medium-aoe", + gravityaffected = "true", + impulsefactor = 0.5, + name = "Pop-up heavy long range g2g plasma cannon", + noselfdamage = true, + predictboost = 0.2, + range = 1380, + reloadtime = 1.8, + soundhit = "xplomed2", + soundhitwet = "splslrg", + soundstart = "cannhvy5", + turret = true, + weapontype = "Cannon", + weaponvelocity = 450, + damage = { + default = 0, + }, + customparams = { + exclude_preaim = true, + smart_trajectory_checker = true, } }, }, @@ -190,6 +219,13 @@ return { def = "ARMAMB_GUN_HIGH", onlytargetcategory = "SURFACE", }, + [3] = { + badtargetcategory = "VTOL GROUNDSCOUT", + def = "smart_trajectory_dummy", + maindir = "0 1 0", + maxangledif = 230, + onlytargetcategory = "SURFACE", + }, }, }, } diff --git a/units/ArmBuildings/LandDefenceOffence/armamd.lua b/units/ArmBuildings/LandDefenceOffence/armamd.lua index 1fdad157817..840575acb1f 100644 --- a/units/ArmBuildings/LandDefenceOffence/armamd.lua +++ b/units/ArmBuildings/LandDefenceOffence/armamd.lua @@ -148,6 +148,9 @@ return { weapontimer = 3, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/ArmBuildings/LandDefenceOffence/armbrtha.lua b/units/ArmBuildings/LandDefenceOffence/armbrtha.lua index 3129bc57e21..4ad05a3a3f7 100644 --- a/units/ArmBuildings/LandDefenceOffence/armbrtha.lua +++ b/units/ArmBuildings/LandDefenceOffence/armbrtha.lua @@ -21,7 +21,7 @@ return { maxwaterdepth = 0, metalcost = 4500, objectname = "Units/ARMBRTHA.s3o", - script = "Units/ARMBRTHA_clean.cob", + script = "Units/ARMBRTHA.cob", seismicsignature = 0, selfdestructas = "hugeBuildingExplosionGenericSelfd", sightdistance = 273, diff --git a/units/ArmBuildings/LandDefenceOffence/armemp.lua b/units/ArmBuildings/LandDefenceOffence/armemp.lua index 3b682448fb4..164acf599e0 100644 --- a/units/ArmBuildings/LandDefenceOffence/armemp.lua +++ b/units/ArmBuildings/LandDefenceOffence/armemp.lua @@ -143,6 +143,9 @@ return { weapontimer = 3, weapontype = "StarburstLauncher", weaponvelocity = 1200, + customparams = { + stockpilelimit = 10, + }, damage = { default = 50000, }, diff --git a/units/ArmBuildings/LandDefenceOffence/armguard.lua b/units/ArmBuildings/LandDefenceOffence/armguard.lua index 32704be366b..7f57c560366 100644 --- a/units/ArmBuildings/LandDefenceOffence/armguard.lua +++ b/units/ArmBuildings/LandDefenceOffence/armguard.lua @@ -23,7 +23,6 @@ return { metalcost = 1250, nochasecategory = "MOBILE", objectname = "Units/ARMGUARD.s3o", - onoffable = true, script = "Units/ARMGUARD.cob", seismicsignature = 0, selfdestructas = "mediumBuildingExplosionGenericSelfd", @@ -36,7 +35,6 @@ return { buildinggrounddecaltype = "decals/armguard_aoplane.dds", model_author = "Beherith", normaltex = "unittextures/Arm_normal.dds", - onoffname = "trajectory", subfolder = "ArmBuildings/LandDefenceOffence", unitgroup = "weapon", usebuildinggrounddecal = true, @@ -116,7 +114,7 @@ return { edgeeffectiveness = 0.4, explosiongenerator = "custom:genericshellexplosion-medium", gravityaffected = "true", - impulsefactor = 0.8, + impulsefactor = 0.5, name = "Heavy g2g long range plasma cannon", noselfdamage = true, range = 1220, @@ -133,40 +131,70 @@ return { vtol = 90, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_priority = true, } }, plasma_high = { accuracy = 75, - areaofeffect = 192, + areaofeffect = 100, avoidfeature = false, - cegtag = "arty-large", - craterareaofeffect = 192, + cegtag = "arty-medium", craterboost = 0, cratermult = 0, - edgeeffectiveness = 0.65, - explosiongenerator = "custom:genericshellexplosion-medium-bomb", + edgeeffectiveness = 0.4, + explosiongenerator = "custom:genericshellexplosion-medium", gravityaffected = "true", hightrajectory = 1, impulsefactor = 1.4, - name = "High-trajectory g2g long-range AoE plasma cannon", + mygravity = 0.289, + name = "Heavy g2g long range plasma cannon", noselfdamage = true, - proximitypriority = -1, range = 1220, - reloadtime = 7, + reloadtime = 2.85, soundhit = "xplomed2", - soundhitwet = "splslrg", + soundhitwet = "splsmed", soundstart = "cannhvy5", turret = true, weapontype = "Cannon", - weaponvelocity = 440, + weaponvelocity = 600, damage = { - default = 600, + default = 300, subs = 150, vtol = 90, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_backup = true, + } + }, + smart_trajectory_dummy = { + accuracy = 75, + areaofeffect = 100, + avoidfeature = false, + cegtag = "arty-medium", + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.4, + explosiongenerator = "custom:genericshellexplosion-medium", + gravityaffected = "true", + impulsefactor = 0.5, + name = "Heavy g2g long range plasma cannon", + noselfdamage = true, + range = 1220, + reloadtime = 2.85, + soundhit = "xplomed2", + soundhitwet = "splsmed", + soundstart = "cannhvy5", + turret = true, + weapontype = "Cannon", + weaponvelocity = 450, + damage = { + default = 0 + }, + customparams = { + exclude_preaim = true, + smart_trajectory_checker = true } }, }, @@ -182,6 +210,13 @@ return { def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, + [3] = { + badtargetcategory = "VTOL", + def = "smart_trajectory_dummy", + maindir = "0 1 0", + maxangledif = 230, + onlytargetcategory = "SURFACE", + }, }, }, } diff --git a/units/ArmBuildings/LandDefenceOffence/armguardnuke.lua b/units/ArmBuildings/LandDefenceOffence/armguardnuke.lua deleted file mode 100644 index d6245df4fe3..00000000000 --- a/units/ArmBuildings/LandDefenceOffence/armguardnuke.lua +++ /dev/null @@ -1,232 +0,0 @@ -return { - armguardnuke = { - activatewhenbuilt = false, - buildangle = 8192, - buildpic = "ARMGUARD.DDS", - buildtime = 21400, - canrepeat = false, - collisionvolumeoffsets = "0 -5 0", - collisionvolumescales = "48 40 48", - collisionvolumetype = "box", - corpse = "DEAD", - energycost = 12500, - explodeas = "mediumBuildingExplosionGeneric", - footprintx = 4, - footprintz = 4, - health = 3050, - idleautoheal = 5, - idletime = 1800, - maxacc = 0, - maxdec = 0, - maxslope = 10, - maxwaterdepth = 0, - metalcost = 1250, - nochasecategory = "MOBILE", - objectname = "Units/ARMGUARD.s3o", - onoffable = true, - script = "Units/ARMGUARD.cob", - seismicsignature = 0, - selfdestructas = "mediumBuildingExplosionGenericSelfd", - sightdistance = 455, - yardmap = "oooooooooooooooo", - customparams = { - buildinggrounddecaldecayspeed = 30, - buildinggrounddecalsizex = 5, - buildinggrounddecalsizey = 5, - buildinggrounddecaltype = "decals/armguard_aoplane.dds", - model_author = "Beherith", - normaltex = "unittextures/Arm_normal.dds", - onoffname = "trajectory", - subfolder = "ArmBuildings/LandDefenceOffence", - unitgroup = "weapon", - usebuildinggrounddecal = true, - }, - featuredefs = { - dead = { - blocking = true, - category = "corpses", - collisionvolumeoffsets = "-1.17901611328 -3.4173887085 2.49339294434", - collisionvolumescales = "56.5218811035 34.070022583 54.9867858887", - collisionvolumetype = "Box", - damage = 1656, - featuredead = "HEAP", - footprintx = 3, - footprintz = 3, - height = 40, - metal = 890, - object = "Units/armguard_dead.s3o", - reclaimable = true, - }, - heap = { - blocking = false, - category = "heaps", - collisionvolumescales = "55.0 4.0 6.0", - collisionvolumetype = "cylY", - damage = 828, - footprintx = 3, - footprintz = 3, - height = 4, - metal = 357, - object = "Units/arm3X3D.s3o", - reclaimable = true, - resurrectable = 0, - }, - }, - sfxtypes = { - explosiongenerators = { - [1] = "custom:barrelshot-medium", - }, - pieceexplosiongenerators = { - [1] = "deathceg2", - [2] = "deathceg3", - [3] = "deathceg4", - }, - }, - sounds = { - canceldestruct = "cancel2", - cloak = "kloak1", - uncloak = "kloak1un", - underattack = "warning1", - cant = { - [1] = "cantdo4", - }, - count = { - [1] = "count6", - [2] = "count5", - [3] = "count4", - [4] = "count3", - [5] = "count2", - [6] = "count1", - }, - ok = { - [1] = "twrturn3", - }, - select = { - [1] = "twrturn3", - }, - }, - weapondefs = { - plasma = { - areaofeffect = 1280, - avoidfeature = false, - avoidfriendly = false, - cegtag = "NUKETRAIL", - collideenemy = false, - collidefeature = false, - collidefriendly = false, - --commandfire = true, - craterareaofeffect = 1280, - craterboost = 2.4, - cratermult = 1.2, - edgeeffectiveness = 0.45, - --energypershot = 125000, - explosiongenerator = "custom:newnuke", - firestarter = 100, - flighttime = 400, - impulsefactor = 1.1, - --metalpershot = 1000, - model = "crblmssl.s3o", - name = "Intercontinental ballistic nuclear warhead", - range = 72000, - reloadtime = 10, - smokecolor = 0.85, - smokeperiod = 10, - smokesize = 28, - smoketime = 130, - smoketrail = true, - smoketrailcastshadow = true, - soundhit = "nukearm", - soundhitwet = "nukewater", - soundhitwetvolume = 53, - soundstart = "nukelaunch", - soundstartvolume = 20, - --stockpile = true, - --stockpiletime = 120, - targetable = 1, - texture1 = "null", - texture2 = "railguntrail", - texture3 = "null", - tolerance = 4000, - turnrate = 5500, - weaponacceleration = 100, - weapontimer = 5.5, - weapontype = "StarburstLauncher", - weaponvelocity = 1600, - customparams = { - place_target_on_ground = "true", - }, - damage = { - commanders = 2500, - default = 9500, - }, - }, - plasma_high = { - areaofeffect = 1920, - avoidfeature = false, - avoidfriendly = false, - cegtag = "NUKETRAIL", - collideenemy = false, - collidefeature = false, - collidefriendly = false, - --commandfire = true, - craterareaofeffect = 1920, - craterboost = 2.4, - cratermult = 1.2, - edgeeffectiveness = 0.45, - --energypershot = 187500, - explosiongenerator = "custom:newnukecor", - firestarter = 100, - flighttime = 400, - impulsefactor = 1.1, - --metalpershot = 1500, - model = "crblmssl.s3o", - name = "Intercontinental thermonuclear ballistic missile", - range = 72000, - reloadtime = 10, - smokecolor = 0.85, - smokeperiod = 10, - smokesize = 28, - smoketime = 130, - smoketrail = true, - smoketrailcastshadow = true, - soundhit = "nukecor", - soundhitwet = "nukewater", - soundhitwetvolume = 56, - soundstart = "nukelaunch", - soundstartvolume = 20, - --stockpile = true, - --stockpiletime = 180, - targetable = 1, - texture1 = "null", - texture2 = "railguntrail", - texture3 = "null", - tolerance = 4000, - turnrate = 5500, - weaponacceleration = 100, - weapontimer = 5.5, - weapontype = "StarburstLauncher", - weaponvelocity = 1600, - customparams = { - place_target_on_ground = "true", - }, - damage = { - commanders = 2500, - default = 11500, - }, - }, - }, - weapons = { - [1] = { - badtargetcategory = "VTOL", - def = "PLASMA", - maindir = "0 1 0", - maxangledif = 230, - onlytargetcategory = "SURFACE", - }, - [2] = { - def = "PLASMA_HIGH", - onlytargetcategory = "SURFACE", - }, - }, - }, -} diff --git a/units/ArmBuildings/LandDefenceOffence/armjuno.lua b/units/ArmBuildings/LandDefenceOffence/armjuno.lua index d765cfe3add..ee2126d4c78 100644 --- a/units/ArmBuildings/LandDefenceOffence/armjuno.lua +++ b/units/ArmBuildings/LandDefenceOffence/armjuno.lua @@ -141,7 +141,9 @@ return { weapontype = "StarburstLauncher", weaponvelocity = 500, customparams = { + lups_noshockwave = 1, nofire = true, + stockpilelimit = 20, }, damage = { default = 1, diff --git a/units/ArmBuildings/LandDefenceOffence/armmercury.lua b/units/ArmBuildings/LandDefenceOffence/armmercury.lua index 4a67742310c..ad57d3e73aa 100644 --- a/units/ArmBuildings/LandDefenceOffence/armmercury.lua +++ b/units/ArmBuildings/LandDefenceOffence/armmercury.lua @@ -146,6 +146,9 @@ return { weaponacceleration = 1000, weapontype = "MissileLauncher", weaponvelocity = 1850, + customparams = { + stockpilelimit = 5, + }, damage = { vtol = 750, }, diff --git a/units/ArmBuildings/LandDefenceOffence/armsilo.lua b/units/ArmBuildings/LandDefenceOffence/armsilo.lua index cbd50cf67d7..90c097118d3 100644 --- a/units/ArmBuildings/LandDefenceOffence/armsilo.lua +++ b/units/ArmBuildings/LandDefenceOffence/armsilo.lua @@ -172,6 +172,7 @@ return { weaponvelocity = 1600, customparams = { place_target_on_ground = "true", + stockpilelimit = 10, }, damage = { commanders = 2500, diff --git a/units/ArmBuildings/LandUtil/armgate.lua b/units/ArmBuildings/LandUtil/armgate.lua index 1dd4397f0d9..90fa207c706 100644 --- a/units/ArmBuildings/LandUtil/armgate.lua +++ b/units/ArmBuildings/LandUtil/armgate.lua @@ -43,7 +43,6 @@ return { removestop = true, removewait = true, shield_color_mult = 0.8, - shield_downtime = 8, shield_power = 3250, shield_radius = 550, subfolder = "ArmBuildings/LandUtil", @@ -118,12 +117,8 @@ return { cratermult = 0, edgeeffectiveness = 0.15, name = "PlasmaRepulsor", - range = 550, soundhitwet = "sizzle", weapontype = "Shield", - damage = { - default = 100, - }, shield = { alpha = 0.17, armortype = "shields", diff --git a/units/ArmBuildings/SeaDefence/armptl.lua b/units/ArmBuildings/SeaDefence/armptl.lua deleted file mode 100644 index 4448f80d916..00000000000 --- a/units/ArmBuildings/SeaDefence/armptl.lua +++ /dev/null @@ -1,123 +0,0 @@ -return { - armptl = { - activatewhenbuilt = true, - buildangle = 16384, - buildpic = "ARMTL.DDS", - buildtime = 3700, - canrepeat = false, - corpse = "DEAD", - energycost = 1500, - explodeas = "mediumBuildingExplosionGeneric", - footprintx = 3, - footprintz = 3, - health = 1300, - idleautoheal = 5, - idletime = 1800, - maxacc = 0, - maxdec = 0, - maxslope = 999, - metalcost = 170, - minwaterdepth = 12, - objectname = "Units/ARMTL.s3o", - script = "Units/ARMTL.cob", - seismicsignature = 0, - selfdestructas = "mediumBuildingExplosionGenericSelfd", - sightdistance = 494, - sonardistance = 230, - waterline = 0, - yardmap = "ooooooooo", - customparams = { - model_author = "FireStorm", - normaltex = "unittextures/Arm_normal.dds", - removewait = true, - subfolder = "ArmBuildings/SeaDefence", - unitgroup = "sub", - }, - featuredefs = { - dead = { - blocking = false, - category = "corpses", - collisionvolumeoffsets = "0.25 -4.24193335938 -0.393661499023", - collisionvolumescales = "32.1499938965 9.51611328125 31.9671630859", - collisionvolumetype = "Box", - damage = 870, - footprintx = 3, - footprintz = 3, - height = 4, - metal = 196, - object = "Units/armtl_dead.s3o", - reclaimable = true, - }, - }, - sfxtypes = { - pieceexplosiongenerators = { - [1] = "deathceg2", - [2] = "deathceg3", - [3] = "deathceg4", - }, - }, - sounds = { - canceldestruct = "cancel2", - underattack = "warning1", - cant = { - [1] = "cantdo4", - }, - count = { - [1] = "count6", - [2] = "count5", - [3] = "count4", - [4] = "count3", - [5] = "count2", - [6] = "count1", - }, - ok = { - [1] = "sharmmov", - }, - select = { - [1] = "sharmsel", - }, - }, - weapondefs = { - coax_torpedo = { - areaofeffect = 16, - avoidfeature = false, - avoidfriendly = true, - burnblow = true, - collidefriendly = true, - craterareaofeffect = 0, - craterboost = 0, - cratermult = 0, - edgeeffectiveness = 0.55, - explosiongenerator = "custom:genericshellexplosion-small-uw", - flighttime = 0.9, - impulsefactor = 0.123, - model = "cortorpedo.s3o", - name = "Homing torpedo launcher", - noselfdamage = true, - range = 500, - reloadtime = 1.5, - soundhit = "xplodep2", - soundstart = "torpedo1", - startvelocity = 450, - tracks = false, - turnrate = 2500, - turret = true, - waterweapon = true, - weaponacceleration = 50, - weapontimer = 3, - weapontype = "TorpedoLauncher", - weaponvelocity = 650, - damage = { - default = 280, - }, - }, - }, - weapons = { - [1] = { - badtargetcategory = "HOVER NOTSHIP", - def = "COAX_TORPEDO", - onlytargetcategory = "VTOL", - }, - }, - }, -} diff --git a/units/ArmBuildings/SeaUtil/armfgate.lua b/units/ArmBuildings/SeaUtil/armfgate.lua index dc9124cee57..04e0c5c9f04 100644 --- a/units/ArmBuildings/SeaUtil/armfgate.lua +++ b/units/ArmBuildings/SeaUtil/armfgate.lua @@ -45,7 +45,6 @@ return { removestop = true, removewait = true, shield_color_mult = 0.8, - shield_downtime = 8, shield_power = 5000, shield_radius = 600, subfolder = "ArmBuildings/SeaUtil", @@ -119,12 +118,8 @@ return { cratermult = 0, edgeeffectiveness = 0.15, name = "NavalPlasmaRepulsor", - range = 600, soundhitwet = "sizzle", weapontype = "Shield", - damage = { - default = 100, - }, shield = { alpha = 0.17, armortype = "shields", diff --git a/units/ArmGantry/armraz.lua b/units/ArmGantry/armraz.lua index 46124310bfe..89f9d3acd9a 100644 --- a/units/ArmGantry/armraz.lua +++ b/units/ArmGantry/armraz.lua @@ -23,7 +23,7 @@ return { metalcost = 3800, movementclass = "HBOT4", objectname = "Units/ARMRAZ.s3o", - script = "Units/armraz_clean.cob", + script = "Units/armraz.cob", seismicsignature = 0, selfdestructas = "explosiont3xl", sightdistance = 450, diff --git a/units/ArmGantry/armthor.lua b/units/ArmGantry/armthor.lua index 93c814519e2..44d4eedb9e6 100644 --- a/units/ArmGantry/armthor.lua +++ b/units/ArmGantry/armthor.lua @@ -194,6 +194,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 500, + customparams = { + stockpilelimit = 2, + }, damage = { default = 80000, }, diff --git a/units/ArmGantry/armvang.lua b/units/ArmGantry/armvang.lua index 27dfca9ca79..9ea3862bf75 100644 --- a/units/ArmGantry/armvang.lua +++ b/units/ArmGantry/armvang.lua @@ -26,7 +26,6 @@ return { movestate = 0, nochasecategory = "VTOL", objectname = "Units/ARMVANG.s3o", - onoffable = true, script = "Units/ARMVANG.cob", seismicsignature = 0, selfdestructas = "explosiont3xl", @@ -39,7 +38,6 @@ return { customparams = { model_author = "Flaka", normaltex = "unittextures/Arm_normal.dds", - onoffname = "trajectory", subfolder = "ArmGantry", techlevel = 3, unitgroup = "weapon", @@ -122,7 +120,7 @@ return { gravityaffected = "true", heightboostfactor = 2.8, hightrajectory = 1, - impulsefactor = 0.9, + impulsefactor = 0.5, name = "Heavy long-range g2g plasma cannon", noselfdamage = true, predictboost = 0.25, @@ -142,7 +140,8 @@ return { subs = 500, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_backup = true, } }, shocker_low = { @@ -159,7 +158,7 @@ return { firetolerance = 5000, gravityaffected = "true", heightboostfactor = 2.8, - impulsefactor = 0.9, + impulsefactor = 0.5, name = "Heavy long-range g2g plasma cannon", noselfdamage = true, predictboost = 0.25, @@ -179,7 +178,43 @@ return { subs = 500, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_priority = true, + } + }, + smart_trajectory_dummy = { + areaofeffect = 192, + avoidfeature = false, + avoidfriendly = true, + cegtag = "arty-huge", + collidefriendly = false, + craterareaofeffect = 192, + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.65, + explosiongenerator = "custom:genericshellexplosion-huge", + firetolerance = 5000, + gravityaffected = "true", + heightboostfactor = 2.8, + impulsefactor = 0.5, + name = "Heavy long-range g2g plasma cannon", + noselfdamage = true, + predictboost = 0.25, + range = 1450, + reloadtime = 8, + soundhit = "xplomed2", + soundhitwet = "splslrg", + soundstart = "cannhvy5", + targetborder = 1, + turret = true, + weapontype = "Cannon", + weaponvelocity = 500, + damage = { + default = 0, + }, + customparams = { + exclude_preaim = true, + smart_trajectory_checker = true, } }, }, @@ -194,6 +229,11 @@ return { def = "SHOCKER_HIGH", onlytargetcategory = "SURFACE", }, + [3] = { + badtargetcategory = "VTOL GROUNDSCOUT", + def = "smart_trajectory_dummy", + onlytargetcategory = "SURFACE", + }, }, }, } diff --git a/units/ArmShips/T2/armantiship.lua b/units/ArmShips/T2/armantiship.lua index a503345095c..00e766583ee 100644 --- a/units/ArmShips/T2/armantiship.lua +++ b/units/ArmShips/T2/armantiship.lua @@ -166,6 +166,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/ArmShips/T2/armcarry.lua b/units/ArmShips/T2/armcarry.lua index 1a41590f2b0..13c3ef3010f 100644 --- a/units/ArmShips/T2/armcarry.lua +++ b/units/ArmShips/T2/armcarry.lua @@ -168,6 +168,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/ArmShips/T2/armepoch.lua b/units/ArmShips/T2/armepoch.lua index 7001027f050..8a67bb69d8b 100644 --- a/units/ArmShips/T2/armepoch.lua +++ b/units/ArmShips/T2/armepoch.lua @@ -198,9 +198,6 @@ return { [2] = 0.33, [3] = 0.7, }, - customparams = { - noattackrangearc = 1, - }, }, heavyplasma = { accuracy = 600, @@ -231,9 +228,6 @@ return { default = 437, vtol = 200, }, - customparams = { - noattackrangearc= 1, - }, }, mediumplasma = { accuracy = 350, diff --git a/units/ArmShips/T2/armlship.lua b/units/ArmShips/T2/armlship.lua index a478a768545..61849f68e22 100644 --- a/units/ArmShips/T2/armlship.lua +++ b/units/ArmShips/T2/armlship.lua @@ -170,7 +170,6 @@ return { impactonly = 1, impulsefactor = 0, intensity = 24, - laserflaresize = 5, name = "Close-quarters lightning turret", noselfdamage = true, range = 400, @@ -180,7 +179,7 @@ return { soundhitwet = "sizzle", soundstart = "lghthvy1", soundtrigger = true, - thickness = 1.5, + thickness = 2, turret = true, weapontype = "LightningCannon", weaponvelocity = 400, @@ -192,6 +191,7 @@ return { }, damage = { default = 35, + subs = 10, }, }, }, diff --git a/units/ArmShips/T2/armmship.lua b/units/ArmShips/T2/armmship.lua index f66770b3116..f68a9d1b666 100644 --- a/units/ArmShips/T2/armmship.lua +++ b/units/ArmShips/T2/armmship.lua @@ -166,7 +166,7 @@ return { gravityaffected = "true", hightrajectory = 1, impulsefactor = 1.4, - interceptedbyshieldtype = 4, + interceptedbyshieldtype = 1024, metalpershot = 0, model = "corshiprocket.s3o", name = "Heavy long-range g2g starburst rocket launcher", @@ -218,7 +218,7 @@ return { flighttime = 15, hightrajectory = 1, impulsefactor = 0.123, - interceptedbyshieldtype = 4, + interceptedbyshieldtype = 8, metalpershot = 0, model = "airbomb.s3o", name = "Heavy long-range g2g ballistic missile launcher", diff --git a/units/ArmShips/T2/armseadragon.lua b/units/ArmShips/T2/armseadragon.lua index 5facb7b4a3c..7dcedc117ed 100644 --- a/units/ArmShips/T2/armseadragon.lua +++ b/units/ArmShips/T2/armseadragon.lua @@ -144,6 +144,9 @@ return { damage = { default = 0, }, + customparams = { + scavforcecommandfire = true, + }, }, sdmssl = { areaofeffect = 1280, @@ -194,6 +197,8 @@ return { weaponvelocity = 1600, customparams = { place_target_on_ground = "true", + scavforcecommandfire = true, + stockpilelimit = 10, }, damage = { commanders = 2500, diff --git a/units/ArmShips/T2/armserp.lua b/units/ArmShips/T2/armserp.lua index 95c7263985d..092e708af0e 100644 --- a/units/ArmShips/T2/armserp.lua +++ b/units/ArmShips/T2/armserp.lua @@ -103,7 +103,7 @@ return { }, weapondefs = { armserp_weapon = { - areaofeffect = 16, + areaofeffect = 120, avoidfeature = false, avoidfriendly = false, burnblow = true, @@ -121,7 +121,7 @@ return { range = 800, reloadtime = 8, soundhit = "xplodep1", - soundhitvolume = 22, + soundhitvolume = 14, soundstart = "torpedo1", startvelocity = 150, tolerance = 8000, @@ -134,9 +134,9 @@ return { weapontype = "TorpedoLauncher", weaponvelocity = 220, damage = { - commanders = 750, - default = 1650, - subs = 1110, + commanders = 375, + default = 825, + subs = 555, }, }, }, @@ -148,6 +148,14 @@ return { maxangledif = 80, onlytargetcategory = "NOTHOVER", }, + [2] = { + badtargetcategory = "HOVER NOTSHIP", + def = "ARMSERP_WEAPON", + maindir = "0 0.2 1", + maxangledif = 80, + onlytargetcategory = "NOTHOVER", + slaveto = 1, + }, }, }, } diff --git a/units/ArmVehicles/armbeaver.lua b/units/ArmVehicles/armbeaver.lua index e2ce18580b9..4a8d3c8ad6f 100644 --- a/units/ArmVehicles/armbeaver.lua +++ b/units/ArmVehicles/armbeaver.lua @@ -83,7 +83,7 @@ return { [40] = "armfrad", [41] = "armfhlt", [42] = "armfrt", - [43] = "armptl", + [43] = "armtl", [44] = "armuwgeo", }, customparams = { diff --git a/units/CorAircraft/T2/corcrwh.lua b/units/CorAircraft/T2/corcrwh.lua index 5825497e7ef..4e231f9493f 100644 --- a/units/CorAircraft/T2/corcrwh.lua +++ b/units/CorAircraft/T2/corcrwh.lua @@ -28,7 +28,7 @@ return { metalcost = 5100, nochasecategory = "VTOL", objectname = "Units/CORCRWH.s3o", - script = "Units/CORCRWH_clean.cob", + script = "Units/CORCRWH.cob", seismicsignature = 0, selfdestructas = "largeExplosionGenericSelfd", sightdistance = 494, diff --git a/units/CorAircraft/T2/cortitan.lua b/units/CorAircraft/T2/cortitan.lua index c3f2f6099f8..daea8df516b 100644 --- a/units/CorAircraft/T2/cortitan.lua +++ b/units/CorAircraft/T2/cortitan.lua @@ -9,8 +9,8 @@ return { cruisealtitude = 90, energycost = 8200, explodeas = "mediumexplosiongeneric", - footprintx = 3, - footprintz = 3, + footprintx = 4, + footprintz = 4, health = 1960, idleautoheal = 5, idletime = 1800, @@ -81,14 +81,14 @@ return { }, }, weapondefs = { - armair_torpedo = { - areaofeffect = 16, + heavy_torpedo = { + areaofeffect = 150, avoidfeature = false, avoidfriendly = false, burnblow = true, - burst = 3, - burstrate = 0.3, - cegtag = "torpedotrail-small", + --burst = 3, + --burstrate = 0.3, + cegtag = "torpedotrail-large", collidefriendly = false, craterareaofeffect = 0, craterboost = 0, @@ -97,13 +97,13 @@ return { explosiongenerator = "custom:genericshellexplosion-large-uw", flighttime = 4, impulsefactor = 0.123, - model = "cortorpedo.s3o", + model = "coradvtorpedo.s3o", mygravity = 0.1, - name = "Light homing torpedo launcher", + name = "Heavy homing torpedo launcher", noselfdamage = true, range = 400, reloadtime = 8, - soundhit = "xplodep2", + soundhit = "xplodep1", soundhitvolume = 3.5, soundhitwet = "splsmed", soundhitwetvolume = 14, @@ -111,26 +111,26 @@ return { startvelocity = 35, tolerance = 2000, tracks = true, - turnrate = 17000, + turnrate = 8000, turret = false, waterweapon = true, weaponacceleration = 35, - weapontimer = 6, + weapontimer = 8, weapontype = "TorpedoLauncher", - weaponvelocity = 200, + weaponvelocity = 160, customparams = { speceffect = "torpwaterpen", when = "ypos<0", }, damage = { - default = 500, + default = 1200, }, }, }, weapons = { [1] = { badtargetcategory = "NOTSHIP", - def = "ARMAIR_TORPEDO", + def = "HEAVY_TORPEDO", onlytargetcategory = "NOTHOVER", }, }, diff --git a/units/CorBots/T2/corhrk.lua b/units/CorBots/T2/corhrk.lua index b06c7612b7d..a7c1a3b7a05 100644 --- a/units/CorBots/T2/corhrk.lua +++ b/units/CorBots/T2/corhrk.lua @@ -9,8 +9,8 @@ return { corpse = "DEAD", energycost = 5800, explodeas = "mediumexplosiongeneric", - footprintx = 2, - footprintz = 2, + footprintx = 3, + footprintz = 3, health = 610, idleautoheal = 5, idletime = 1800, @@ -19,7 +19,8 @@ return { maxslope = 14, maxwaterdepth = 21, metalcost = 600, - movementclass = "BOT5", + movementclass = "BOT4", + separationDistance = 8, movestate = 0, nochasecategory = "VTOL", objectname = "Units/CORHRK.s3o", @@ -50,8 +51,8 @@ return { collisionvolumetype = "Box", damage = 450, featuredead = "HEAP", - footprintx = 2, - footprintz = 2, + footprintx = 3, + footprintz = 3, height = 20, metal = 194, object = "Units/corhrk_dead.s3o", diff --git a/units/CorBots/T2/corpyro.lua b/units/CorBots/T2/corpyro.lua index 7e0a56be7dc..6ff74e009b8 100644 --- a/units/CorBots/T2/corpyro.lua +++ b/units/CorBots/T2/corpyro.lua @@ -22,7 +22,7 @@ return { movementclass = "BOT3", nochasecategory = "VTOL", objectname = "Units/CORPYRO.s3o", - script = "Units/CORPYRO_clean.cob", + script = "Units/CORPYRO.cob", seismicsignature = 0, selfdestructas = "pyroselfd", selfdestructcountdown = 1, diff --git a/units/CorBots/T2/corspec.lua b/units/CorBots/T2/corspec.lua index cda8634feba..fc00aed0a48 100644 --- a/units/CorBots/T2/corspec.lua +++ b/units/CorBots/T2/corspec.lua @@ -29,7 +29,7 @@ return { onoffable = true, radardistance = 0, radardistancejam = 450, - script = "Units/CORSPEC_CLEAN.cob", + script = "Units/CORSPEC.cob", seismicsignature = 0, selfdestructas = "smallExplosionGenericSelfd", sightdistance = 250, diff --git a/units/CorBots/T2/corsumo.lua b/units/CorBots/T2/corsumo.lua index 2df1c04c5c6..4d8465f5bbf 100644 --- a/units/CorBots/T2/corsumo.lua +++ b/units/CorBots/T2/corsumo.lua @@ -33,7 +33,7 @@ return { turnrate = 368, usepiececollisionvolumes = 1, customparams = { - model_author = "Beherith", + model_author = "Tharsis", normaltex = "unittextures/cor_normal.dds", paralyzemultiplier = 1, subfolder = "CorBots/T2", @@ -44,8 +44,8 @@ return { dead = { blocking = true, category = "corpses", - collisionvolumeoffsets = "-2.34260559082 -0.241825708008 -1.33148193359", - collisionvolumescales = "60.9344787598 36.418548584 64.3249511719", + collisionvolumeoffsets = "0.0 -8 1.8", + collisionvolumescales = "44.2 41.0 49.1", collisionvolumetype = "Box", damage = 8400, featuredead = "HEAP", @@ -72,6 +72,9 @@ return { }, }, sfxtypes = { + explosiongenerators = { + [1] = "custom:footstep-medium", + }, pieceexplosiongenerators = { [1] = "deathceg2", [2] = "deathceg3", diff --git a/units/CorBuildings/LandDefenceOffence/corbhmth.lua b/units/CorBuildings/LandDefenceOffence/corbhmth.lua index 82cfae81e5e..2096746ba03 100644 --- a/units/CorBuildings/LandDefenceOffence/corbhmth.lua +++ b/units/CorBuildings/LandDefenceOffence/corbhmth.lua @@ -25,7 +25,7 @@ return { metalcost = 3100, nochasecategory = "MOBILE", objectname = "Units/CORBHMTH.s3o", - script = "Units/CORBHMTH_CLEAN.cob", + script = "Units/CORBHMTH.cob", seismicsignature = 0, selfdestructas = "largeBuildingExplosionGenericSelfd", sightdistance = 650, diff --git a/units/CorBuildings/LandDefenceOffence/corfmd.lua b/units/CorBuildings/LandDefenceOffence/corfmd.lua index c8adde19e6d..c414ce8b448 100644 --- a/units/CorBuildings/LandDefenceOffence/corfmd.lua +++ b/units/CorBuildings/LandDefenceOffence/corfmd.lua @@ -24,7 +24,7 @@ return { noautofire = true, objectname = "Units/CORFMD.s3o", radardistance = 50, - script = "Units/CORFMD_CLEAN.cob", + script = "Units/CORFMD.cob", seismicsignature = 0, selfdestructas = "largeExplosionGenericSelfd", sightdistance = 195, @@ -148,6 +148,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/CorBuildings/LandDefenceOffence/corint.lua b/units/CorBuildings/LandDefenceOffence/corint.lua index 868e90e41f2..2b20e3a2548 100644 --- a/units/CorBuildings/LandDefenceOffence/corint.lua +++ b/units/CorBuildings/LandDefenceOffence/corint.lua @@ -21,7 +21,7 @@ return { maxwaterdepth = 0, metalcost = 4600, objectname = "Units/CORINT.s3o", - script = "Units/CORINT_CLEAN.cob", + script = "Units/CORINT.cob", seismicsignature = 0, selfdestructas = "hugeBuildingExplosionGenericSelfd", sightdistance = 273, diff --git a/units/CorBuildings/LandDefenceOffence/corjuno.lua b/units/CorBuildings/LandDefenceOffence/corjuno.lua index 548b0660c6b..ef1e2461d15 100644 --- a/units/CorBuildings/LandDefenceOffence/corjuno.lua +++ b/units/CorBuildings/LandDefenceOffence/corjuno.lua @@ -141,6 +141,10 @@ return { weapontype = "StarburstLauncher", weaponvelocity = 500, customparams = { + stockpilelimit = 20, + }, + customparams = { + lups_noshockwave = 1, nofire = true, }, damage = { diff --git a/units/CorBuildings/LandDefenceOffence/cormaw.lua b/units/CorBuildings/LandDefenceOffence/cormaw.lua index 9f4f8d2a3bb..78ffa8777ab 100644 --- a/units/CorBuildings/LandDefenceOffence/cormaw.lua +++ b/units/CorBuildings/LandDefenceOffence/cormaw.lua @@ -24,7 +24,7 @@ return { nochasecategory = "MOBILE", objectname = "Units/CORMAW.s3o", radardistancejam = 8, - script = "Units/CORMAW_clean.cob", + script = "Units/CORMAW.cob", seismicsignature = 0, selfdestructas = "flamethrowerSelfd", sightdistance = 422, diff --git a/units/CorBuildings/LandDefenceOffence/corpun.lua b/units/CorBuildings/LandDefenceOffence/corpun.lua index 121cacaef7d..6b38f120786 100644 --- a/units/CorBuildings/LandDefenceOffence/corpun.lua +++ b/units/CorBuildings/LandDefenceOffence/corpun.lua @@ -23,7 +23,6 @@ return { metalcost = 1300, nochasecategory = "MOBILE", objectname = "Units/CORPUN.s3o", - onoffable = true, script = "Units/armguard.cob", seismicsignature = 0, selfdestructas = "largeBuildingExplosionGenericSelfd", @@ -36,7 +35,6 @@ return { buildinggrounddecaltype = "decals/corpun_aoplane.dds", model_author = "Mr Bob", normaltex = "unittextures/cor_normal.dds", - onoffname = "trajectory", subfolder = "CorBuildings/LandDefenceOffence", unitgroup = "weapon", usebuildinggrounddecal = true, @@ -116,7 +114,7 @@ return { edgeeffectiveness = 0.4, explosiongenerator = "custom:genericshellexplosion-medium-bomb", gravityaffected = "true", - impulsefactor = 0.8, + impulsefactor = 0.5, name = "Long-range g2g plasma cannon", noselfdamage = true, range = 1245, @@ -134,40 +132,71 @@ return { vtol = 95, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_priority = true, } }, plasma_high = { accuracy = 75, - areaofeffect = 208, + areaofeffect = 120, avoidfeature = false, cegtag = "arty-medium", - craterareaofeffect = 208, craterboost = 0, cratermult = 0, - edgeeffectiveness = 0.65, + edgeeffectiveness = 0.4, explosiongenerator = "custom:genericshellexplosion-medium-bomb", gravityaffected = "true", hightrajectory = 1, impulsefactor = 1.4, - name = "Long-range high-trajectory g2g AoE plasma cannon", + mygravity = 0.289, + name = "Long-range g2g plasma cannon", noselfdamage = true, - proximitypriority = -1, range = 1245, - reloadtime = 7.5, + reloadtime = 3.16667, soundhit = "xplomed2", - soundhitwet = "splslrg", + soundhitwet = "splsmed", soundstart = "cannhvy5", turret = true, weapontype = "Cannon", - weaponvelocity = 440, + weaponvelocity = 600, damage = { - default = 650, - subs = 95, + default = 350, + lboats = 350, + subs = 90, vtol = 95, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_backup = true, + } + }, + smart_trajectory_dummy = { + accuracy = 75, + areaofeffect = 120, + avoidfeature = false, + cegtag = "arty-medium", + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.4, + explosiongenerator = "custom:genericshellexplosion-medium-bomb", + gravityaffected = "true", + impulsefactor = 0.5, + name = "Long-range g2g plasma cannon", + noselfdamage = true, + range = 1245, + reloadtime = 3.16667, + soundhit = "xplomed2", + soundhitwet = "splsmed", + soundstart = "cannhvy5", + turret = true, + weapontype = "Cannon", + weaponvelocity = 450, + damage = { + default = 0, + }, + customparams = { + exclude_preaim = true, + smart_trajectory_checker = true } }, }, @@ -183,6 +212,13 @@ return { def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, + [3] = { + badtargetcategory = "VTOL", + def = "smart_trajectory_dummy", + maindir = "0 1 0", + maxangledif = 230, + onlytargetcategory = "SURFACE", + } }, }, } diff --git a/units/CorBuildings/LandDefenceOffence/corscreamer.lua b/units/CorBuildings/LandDefenceOffence/corscreamer.lua index 60c5c1bed0d..d0b78668b19 100644 --- a/units/CorBuildings/LandDefenceOffence/corscreamer.lua +++ b/units/CorBuildings/LandDefenceOffence/corscreamer.lua @@ -146,6 +146,9 @@ return { weaponacceleration = 1000, weapontype = "MissileLauncher", weaponvelocity = 1850, + customparams = { + stockpilelimit = 5, + }, damage = { vtol = 750, }, diff --git a/units/CorBuildings/LandDefenceOffence/corsilo.lua b/units/CorBuildings/LandDefenceOffence/corsilo.lua index a5c499f52c4..5e3783eb1fc 100644 --- a/units/CorBuildings/LandDefenceOffence/corsilo.lua +++ b/units/CorBuildings/LandDefenceOffence/corsilo.lua @@ -147,6 +147,7 @@ return { weaponvelocity = 1600, customparams = { place_target_on_ground = "true", + stockpilelimit = 10, }, damage = { commanders = 2500, diff --git a/units/CorBuildings/LandDefenceOffence/cortoast.lua b/units/CorBuildings/LandDefenceOffence/cortoast.lua index 15c979b224d..688d1fd402e 100644 --- a/units/CorBuildings/LandDefenceOffence/cortoast.lua +++ b/units/CorBuildings/LandDefenceOffence/cortoast.lua @@ -24,7 +24,6 @@ return { metalcost = 2500, nochasecategory = "MOBILE", objectname = "Units/CORTOAST.s3o", - onoffable = true, script = "Units/CORTOAST.cob", seismicsignature = 0, selfdestructas = "mediumBuildingExplosionGenericSelfd", @@ -38,7 +37,6 @@ return { buildinggrounddecaltype = "decals/cortoast_aoplane.dds", model_author = "Mr Bob", normaltex = "unittextures/cor_normal.dds", - onoffname = "trajectory", subfolder = "CorBuildings/LandDefenceOffence", techlevel = 2, unitgroup = "weapon", @@ -119,7 +117,7 @@ return { edgeeffectiveness = 0.4, explosiongenerator = "custom:genericshellexplosion-medium-aoe", gravityaffected = "true", - impulsefactor = 0.8, + impulsefactor = 0.5, name = "Pop-up long-range heavy g2g plasma cannon", noselfdamage = true, predictboost = 0.2, @@ -139,42 +137,73 @@ return { vtol = 90, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_priority = true, } }, cortoast_gun_high = { accuracy = 450, - areaofeffect = 240, + areaofeffect = 164, avoidfeature = false, - cegtag = "arty-huge", - craterareaofeffect = 240, + cegtag = "arty-heavy", craterboost = 0, cratermult = 0, - edgeeffectiveness = 0.65, - explosiongenerator = "custom:genericshellexplosion-large-bomb", + edgeeffectiveness = 0.4, + explosiongenerator = "custom:genericshellexplosion-medium-aoe", gravityaffected = "true", hightrajectory = 1, - impulsefactor = 2, - name = "Pop-up high-trajectory long-range heavy g2g AoE plasma cannon", + impulsefactor = 0.5, + name = "Pop-up long-range heavy g2g plasma cannon", noselfdamage = true, - proximitypriority = -1, + predictboost = 0.2, range = 1390, - reloadtime = 8, - soundhit = "xplolrg4", + reloadtime = 2.1, + soundhit = "xplomed2", soundhitwet = "splslrg", - soundstart = "cannhvy6", + soundstart = "cannhvy5", turret = true, weapontype = "Cannon", - weaponvelocity = 440, + weaponvelocity = 450, damage = { - default = 960, - hvyboats = 960, - lboats = 960, + default = 420, + hvyboats = 420, + lboats = 420, subs = 90, vtol = 90, }, customparams = { - exclude_preaim = true + exclude_preaim = true, + smart_backup = true, + } + }, + smart_trajectory_dummy = { + accuracy = 450, + areaofeffect = 164, + avoidfeature = false, + cegtag = "arty-heavy", + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.4, + explosiongenerator = "custom:genericshellexplosion-medium-aoe", + gravityaffected = "true", + impulsefactor = 0.5, + name = "Pop-up long-range heavy g2g plasma cannon", + noselfdamage = true, + predictboost = 0.2, + range = 1390, + reloadtime = 2.1, + soundhit = "xplomed2", + soundhitwet = "splslrg", + soundstart = "cannhvy5", + turret = true, + weapontype = "Cannon", + weaponvelocity = 450, + damage = { + default = 0, + }, + customparams = { + exclude_preaim = true, + smart_trajectory_checker = true, } }, }, @@ -191,6 +220,13 @@ return { def = "CORTOAST_GUN_HIGH", onlytargetcategory = "SURFACE", }, + [3] = { + badtargetcategory = "VTOL GROUNDSCOUT", + def = "smart_trajectory_dummy", + maindir = "0 1 0", + maxangledif = 230, + onlytargetcategory = "SURFACE", + }, }, }, } diff --git a/units/CorBuildings/LandDefenceOffence/cortron.lua b/units/CorBuildings/LandDefenceOffence/cortron.lua index 8332d50a449..425db71afc9 100644 --- a/units/CorBuildings/LandDefenceOffence/cortron.lua +++ b/units/CorBuildings/LandDefenceOffence/cortron.lua @@ -141,6 +141,9 @@ return { weapontimer = 3, weapontype = "StarburstLauncher", weaponvelocity = 1200, + customparams = { + stockpilelimit = 10, + }, damage = { commanders = 750, default = 4000, diff --git a/units/CorBuildings/LandUtil/corgate.lua b/units/CorBuildings/LandUtil/corgate.lua index 6724fd8be74..c12967653b3 100644 --- a/units/CorBuildings/LandUtil/corgate.lua +++ b/units/CorBuildings/LandUtil/corgate.lua @@ -43,7 +43,6 @@ return { removestop = true, removewait = true, shield_color_mult = 0.8, - shield_downtime = 8, shield_power = 3250, shield_radius = 550, subfolder = "CorBuildings/LandUtil", @@ -118,12 +117,8 @@ return { cratermult = 0, edgeeffectiveness = 0.15, name = "PlasmaRepulsor", - range = 550, soundhitwet = "sizzle", weapontype = "Shield", - damage = { - default = 100, - }, shield = { alpha = 0.17, armortype = "shields", diff --git a/units/CorBuildings/SeaDefence/corptl.lua b/units/CorBuildings/SeaDefence/corptl.lua deleted file mode 100644 index 0dbeff9c9c1..00000000000 --- a/units/CorBuildings/SeaDefence/corptl.lua +++ /dev/null @@ -1,123 +0,0 @@ -return { - corptl = { - activatewhenbuilt = true, - buildangle = 16384, - buildpic = "CORTL.DDS", - buildtime = 3750, - canrepeat = false, - corpse = "DEAD", - energycost = 1800, - explodeas = "mediumBuildingExplosionGeneric", - footprintx = 3, - footprintz = 3, - health = 1440, - idleautoheal = 5, - idletime = 1800, - maxacc = 0, - maxdec = 0, - maxslope = 999, - metalcost = 170, - minwaterdepth = 12, - objectname = "Units/CORTL.s3o", - script = "Units/CORTL.cob", - seismicsignature = 0, - selfdestructas = "mediumBuildingExplosionGenericSelfd", - sightdistance = 495, - sonardistance = 230, - yardmap = "ooooooooo", - customparams = { - model_author = "Mr Bob", - normaltex = "unittextures/cor_normal.dds", - removewait = true, - subfolder = "CorBuildings/SeaDefence", - unitgroup = "weaponaa", - }, - featuredefs = { - dead = { - blocking = false, - category = "corpses", - collisionvolumeoffsets = "-0.449691772461 -1.59912109332e-06 0.155464172363", - collisionvolumescales = "30.8800354004 19.4210968018 32.1831512451", - collisionvolumetype = "Box", - damage = 912, - footprintx = 3, - footprintz = 3, - height = 4, - metal = 205, - object = "Units/cortl_dead.s3o", - reclaimable = true, - }, - }, - sfxtypes = { - pieceexplosiongenerators = { - [1] = "deathceg2", - [2] = "deathceg3", - [3] = "deathceg4", - }, - }, - sounds = { - canceldestruct = "cancel2", - underattack = "warning1", - cant = { - [1] = "cantdo4", - }, - count = { - [1] = "count6", - [2] = "count5", - [3] = "count4", - [4] = "count3", - [5] = "count2", - [6] = "count1", - }, - ok = { - [1] = "shcormov", - }, - select = { - [1] = "shcorsel", - }, - }, - weapondefs = { - torpedo = { - areaofeffect = 16, - avoidfeature = false, - avoidfriendly = true, - burnblow = true, - collidefriendly = true, - craterareaofeffect = 0, - craterboost = 0, - cratermult = 0, - edgeeffectiveness = 0.55, - explosiongenerator = "custom:genericshellexplosion-small-uw", - flighttime = 0.9, - impulsefactor = 0.123, - model = "cortorpedo.s3o", - name = "Torpedo launcher", - noselfdamage = true, - range = 430, - reloadtime = 0.9, - soundhit = "xplodep2", - soundstart = "torpedo1", - startvelocity = 450, - tracks = false, - turnrate = 2500, - turret = true, - waterweapon = true, - weaponacceleration = 50, - weapontimer = 3, - weapontype = "TorpedoLauncher", - weaponvelocity = 650, - damage = { - commanders = 250, - default = 189, - }, - }, - }, - weapons = { - [1] = { - badtargetcategory = "HOVER NOTSHIP", - def = "TORPEDO", - onlytargetcategory = "VTOL", - }, - }, - }, -} diff --git a/units/CorBuildings/SeaEconomy/coruwmmm.lua b/units/CorBuildings/SeaEconomy/coruwmmm.lua index 0e34fccc302..be0efc3de3f 100644 --- a/units/CorBuildings/SeaEconomy/coruwmmm.lua +++ b/units/CorBuildings/SeaEconomy/coruwmmm.lua @@ -23,7 +23,7 @@ return { metalcost = 370, minwaterdepth = 15, objectname = "Units/CORUWMMM.s3o", - script = "Units/CORUWMMM_CLEAN.cob", + script = "Units/CORUWMMM.cob", seismicsignature = 0, selfdestructas = "hugeBuildingExplosionGenericSelfd", sightdistance = 143, diff --git a/units/CorBuildings/SeaUtil/corfgate.lua b/units/CorBuildings/SeaUtil/corfgate.lua index b92646b93be..73cc51e2129 100644 --- a/units/CorBuildings/SeaUtil/corfgate.lua +++ b/units/CorBuildings/SeaUtil/corfgate.lua @@ -45,7 +45,6 @@ return { removestop = true, removewait = true, shield_color_mult = 0.8, - shield_downtime = 8, shield_power = 5000, shield_radius = 600, subfolder = "CorBuildings/SeaUtil", @@ -119,12 +118,8 @@ return { cratermult = 0, edgeeffectiveness = 0.15, name = "NavalPlasmaRepulsor", - range = 600, soundhitwet = "sizzle", weapontype = "Shield", - damage = { - default = 100, - }, shield = { alpha = 0.17, armortype = "shields", diff --git a/units/CorGantry/corcat.lua b/units/CorGantry/corcat.lua index cf2eace0e58..90e6317b63b 100644 --- a/units/CorGantry/corcat.lua +++ b/units/CorGantry/corcat.lua @@ -24,7 +24,7 @@ return { movestate = 0, nochasecategory = "VTOL", objectname = "Units/CORCAT.s3o", - script = "Units/CORCAT_CLEAN.cob", + script = "Units/CORCAT.cob", seismicsignature = 0, selfdestructas = "explosiont3xl", sightdistance = 700, diff --git a/units/CorGantry/cordemon.lua b/units/CorGantry/cordemon.lua index 0301fa1afb5..345c7a00f57 100644 --- a/units/CorGantry/cordemon.lua +++ b/units/CorGantry/cordemon.lua @@ -24,7 +24,7 @@ return { movementclass = "HBOT4", nochasecategory = "VTOL", objectname = "Units/cordemon.s3o", - script = "Units/cordemon_clean.COB", + script = "Units/cordemon.COB", seismicsignature = 0, selfdestructas = "explosiont3xxl", sightdistance = 500, @@ -76,7 +76,6 @@ return { sfxtypes = { explosiongenerators = { [1] = "custom:flamestreamxxl", - [2] = "custom:pilotlightxl", }, pieceexplosiongenerators = { [1] = "deathceg2", diff --git a/units/CorGantry/corjugg.lua b/units/CorGantry/corjugg.lua index ef765703c2e..b6c5a885e23 100644 --- a/units/CorGantry/corjugg.lua +++ b/units/CorGantry/corjugg.lua @@ -24,7 +24,7 @@ return { movementclass = "HBOT7", nochasecategory = "VTOL", objectname = "Units/CORJUGG.s3o", - script = "Units/CORJUGG_CLEAN.cob", + script = "Units/CORJUGG.cob", seismicsignature = 0, selfdestructas = "juggernautSelfd", sightdistance = 720, @@ -210,35 +210,6 @@ return { default = 150, }, }, - juggfootstep = { - areaofeffect = 172, - avoidfeature = false, - camerashake = 400, - canattackground = false, - collidefriendly = false, - craterareaofeffect = 0, - craterboost = 0, - cratermult = 0, - edgeeffectiveness = 0, - explosiongenerator = "custom:footstep-large", - impactonly = 1, - name = "JuggStep", - noselfdamage = true, - range = 0, - reloadtime = 1.5, - soundhitdry = "korgstep", - soundhitdryvolume = 18, - soundhitwet = "splssml", - soundhitwetvolume = 16, - weapontype = "Cannon", - customparams = { - nodecal = true, - noexplosionlight = 1, - }, - damage = { - default = 0, - }, - }, }, weapons = { [1] = { @@ -265,9 +236,6 @@ return { maxangledif = 270, onlytargetcategory = "NOTSUB", }, - [5] = { - def = "JUGGFOOTSTEP", - }, }, }, } diff --git a/units/CorGantry/corkarg.lua b/units/CorGantry/corkarg.lua index be4dc8141a7..a13cb26960d 100644 --- a/units/CorGantry/corkarg.lua +++ b/units/CorGantry/corkarg.lua @@ -197,7 +197,7 @@ return { firestarter = 5, flighttime = 2.5, impulsefactor = 0.123, - model = "cormissile3fast.s3o", + model = "cormissile2.s3o", name = "KarganethMissiles", noselfdamage = true, range = 600, diff --git a/units/CorGantry/corkorg.lua b/units/CorGantry/corkorg.lua index e7b39afc788..da4b51671d7 100644 --- a/units/CorGantry/corkorg.lua +++ b/units/CorGantry/corkorg.lua @@ -26,7 +26,7 @@ return { movementclass = "VBOT5", nochasecategory = "VTOL GROUNDSCOUT", objectname = "Units/corkorg.s3o", - script = "Units/corkorg_clean.cob", + script = "Units/corkorg.cob", seismicsignature = 0, selfdestructas = "korgExplosionSelfd", selfdestructcountdown = 10, @@ -276,6 +276,7 @@ return { weapontype = "Cannon", weaponvelocity = 1650, customparams = { + lups_noshockwave = true, nofire = true, }, damage = { diff --git a/units/CorShips/T2/corantiship.lua b/units/CorShips/T2/corantiship.lua index b007510b09f..2492e930822 100644 --- a/units/CorShips/T2/corantiship.lua +++ b/units/CorShips/T2/corantiship.lua @@ -36,7 +36,7 @@ return { objectname = "Units/CORANTISHIP.s3o", radardistance = 2950, radaremitheight = 56, - script = "Units/CORANTISHIP_CLEAN.cob", + script = "Units/CORANTISHIP.cob", seismicsignature = 0, selfdestructas = "minifusionExplosion", sightdistance = 1000, @@ -166,6 +166,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/CorShips/T2/corcarry.lua b/units/CorShips/T2/corcarry.lua index 8c47fff8599..571b4dde2b5 100644 --- a/units/CorShips/T2/corcarry.lua +++ b/units/CorShips/T2/corcarry.lua @@ -169,6 +169,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/CorShips/T2/cordesolator.lua b/units/CorShips/T2/cordesolator.lua index a051817b331..e794d90d5a9 100644 --- a/units/CorShips/T2/cordesolator.lua +++ b/units/CorShips/T2/cordesolator.lua @@ -131,6 +131,7 @@ return { craterareaofeffect = 1920, craterboost = 2.4, cratermult = 1.2, + commandfire = true, edgeeffectiveness = 0.45, energypershot = 187500, explosiongenerator = "custom:newnukecor", @@ -168,6 +169,8 @@ return { weaponvelocity = 1600, customparams = { place_target_on_ground = "true", + scavforcecommandfire = true, + stockpilelimit = 10, }, damage = { commanders = 2500, @@ -199,6 +202,9 @@ return { damage = { default = 0, }, + customparams = { + scavforcecommandfire = true, + }, }, waterballon = { areaofeffect = 16, diff --git a/units/CorShips/T2/corfship.lua b/units/CorShips/T2/corfship.lua index 6a58a9e32f4..b88954f385e 100644 --- a/units/CorShips/T2/corfship.lua +++ b/units/CorShips/T2/corfship.lua @@ -1,7 +1,6 @@ return { corfship = { activatewhenbuilt = true, - airsightdistance = 470, autoheal = 1.5, blocking = true, buildpic = "CORFSHIP.DDS", @@ -28,7 +27,7 @@ return { objectname = "Units/CORFSHIP.s3o", radardistance = 750, radaremitheight = 52, - script = "Units/CORFSHIP_clean.cob", + script = "Units/CORFSHIP.cob", seismicsignature = 0, selfdestructas = "pyroselfd", sightdistance = 500, diff --git a/units/CorShips/T2/cormship.lua b/units/CorShips/T2/cormship.lua index 83ff273b37b..ca26c8a5b53 100644 --- a/units/CorShips/T2/cormship.lua +++ b/units/CorShips/T2/cormship.lua @@ -164,7 +164,7 @@ return { gravityaffected = "true", hightrajectory = 1, impulsefactor = 0.123, - interceptedbyshieldtype = 4, + interceptedbyshieldtype = 1024, metalpershot = 0, model = "corshiprocket.s3o", name = "Heavy long-range g2g starburst rocket launcher", @@ -216,7 +216,7 @@ return { firestarter = 100, flighttime = 15, impulsefactor = 0.123, - interceptedbyshieldtype = 4, + interceptedbyshieldtype = 8, metalpershot = 0, model = "airbomb.s3o", name = "Heavy long-range g2g ballistic missile launcher", diff --git a/units/CorShips/T2/corssub.lua b/units/CorShips/T2/corssub.lua index 829f1837a52..5611266180f 100644 --- a/units/CorShips/T2/corssub.lua +++ b/units/CorShips/T2/corssub.lua @@ -103,7 +103,7 @@ return { }, weapondefs = { armserp_weapon = { - areaofeffect = 16, + areaofeffect = 160, avoidfeature = false, avoidfriendly = false, burnblow = true, diff --git a/units/CorVehicles/T2/cormabm.lua b/units/CorVehicles/T2/cormabm.lua index 3b5cbc6e4ee..225e3869a77 100644 --- a/units/CorVehicles/T2/cormabm.lua +++ b/units/CorVehicles/T2/cormabm.lua @@ -28,7 +28,7 @@ return { nochasecategory = "ALL", objectname = "Units/CORMABM.s3o", radardistance = 50, - script = "Units/CORMABM_CLEAN.cob", + script = "Units/CORMABM.cob", seismicsignature = 0, selfdestructas = "largeExplosionGenericSelfd", sightdistance = 450, @@ -155,6 +155,9 @@ return { weapontimer = 2, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 500, }, diff --git a/units/CorVehicles/corlevlr.lua b/units/CorVehicles/corlevlr.lua index ff63027cf79..534d0df282a 100644 --- a/units/CorVehicles/corlevlr.lua +++ b/units/CorVehicles/corlevlr.lua @@ -115,7 +115,6 @@ return { alphadecay = 0.1, areaofeffect = 144, avoidfeature = false, - cegtag = "impulse-trail", burnblow = true, craterboost = 0, cratermult = 0, @@ -127,14 +126,14 @@ return { noselfdamage = true, range = 315, reloadtime = 1.8, - separation = 1.5, - sizedecay = 0.04, + separation = 2, + sizedecay = 0.08, soundhit = "corlevlrhit", soundhitvolume = 11.5, soundhitwet = "splsmed", soundstart = "corlevlr", soundstartvolume = 13, - stages = 24, + stages = 12, turret = true, weapontype = "Cannon", weaponvelocity = 550, diff --git a/units/CorVehicles/cormuskrat.lua b/units/CorVehicles/cormuskrat.lua index 1580ad6e7e9..63db91c6b46 100644 --- a/units/CorVehicles/cormuskrat.lua +++ b/units/CorVehicles/cormuskrat.lua @@ -83,7 +83,7 @@ return { [40] = "corfrad", [41] = "corfhlt", [42] = "corfrt", - [43] = "corptl", + [43] = "cortl", [44] = "coruwgeo", }, customparams = { diff --git a/units/Legion/Air/T2 Air/legatorpbomber.lua b/units/Legion/Air/T2 Air/legatorpbomber.lua new file mode 100644 index 00000000000..d596dca0072 --- /dev/null +++ b/units/Legion/Air/T2 Air/legatorpbomber.lua @@ -0,0 +1,143 @@ +return { + legatorpbomber = { + blocking = false, + buildpic = "LEGATORPBOMBER.DDS", + buildtime = 18240, + canfly = true, + canmove = true, + collide = true, + cruisealtitude = 90, + energycost = 9480, + explodeas = "mediumexplosiongeneric", + footprintx = 4, + footprintz = 4, + health = 1900, + idleautoheal = 5, + idletime = 1800, + maxacc = 0.1325, + maxaileron = 0.01347, + maxbank = 0.8, + maxdec = 0.0725, + maxelevator = 0.00972, + maxpitch = 0.625, + maxrudder = 0.00522, + maxslope = 10, + maxwaterdepth = 0, + metalcost = 480, + nochasecategory = "VTOL", + objectname = "Units/LEGATORPBOMBER.s3o", + radardistance = 800, + script = "Units/LEGATORPBOMBER.cob", + seismicsignature = 0, + selfdestructas = "mediumExplosionGenericSelfd", + sightdistance = 500, + sonardistance = 800, + speed = 290, + speedtofront = 0.063, + turnradius = 64, + usesmoothmesh = true, + wingangle = 0.06222, + wingdrag = 0.18, + customparams = { + model_author = "ZephyrSkies", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Air/T2 Air", + techlevel = 2, + unitgroup = "sub", + }, + sfxtypes = { + crashexplosiongenerators = { + [1] = "crashing-small", + [2] = "crashing-small", + [3] = "crashing-small2", + [4] = "crashing-small3", + [5] = "crashing-small3", + }, + pieceexplosiongenerators = { + [1] = "airdeathceg3", + [2] = "airdeathceg4", + [3] = "airdeathceg2", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "vtolcrmv", + }, + select = { + [1] = "vtolcrac", + }, + }, + weapondefs = { + legair_torp = { + areaofeffect = 16, + avoidfeature = false, + avoidfriendly = false, + burnblow = true, + -- burst = 3, + -- burstrate = 0.3, + cegtag = "torpedotrail-large", + collidefriendly = false, + craterareaofeffect = 0, + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.15, + explosiongenerator = "custom:genericshellexplosion-large-uw", + flighttime = 4, + impulsefactor = 0.123, + model = "legmediumtorpedo.s3o", + mygravity = 0.1, + name = "Medium Homing Torpedo Launcher", + noselfdamage = true, + range = 400, + reloadtime = 7, + soundhit = "xplodep2", + soundhitvolume = 3.5, + soundhitwet = "splsmed", + soundhitwetvolume = 14, + soundstart = "bombrel", + startvelocity = 35, + tolerance = 2000, + tracks = true, + turnrate = 17000, + turret = false, + waterweapon = true, + weaponacceleration = 35, + weapontimer = 6, + weapontype = "TorpedoLauncher", + weaponvelocity = 200, + customparams = { + speceffect = "torpwaterpen", + when = "ypos<0", + }, + damage = { + default = 750, + }, + }, + }, + weapons = { + [1] = { + badtargetcategory = "NOTSHIP", + def = "LEGAIR_TORP", + onlytargetcategory = "NOTHOVER", + }, + [2] = { + badtargetcategory = "NOTSHIP", + def = "LEGAIR_TORP", + onlytargetcategory = "NOTHOVER", + }, + }, + }, +} diff --git a/units/Legion/Air/T2 Air/legmineb.lua b/units/Legion/Air/T2 Air/legmineb.lua index cfbfbd81db1..956d8bd0c34 100644 --- a/units/Legion/Air/T2 Air/legmineb.lua +++ b/units/Legion/Air/T2 Air/legmineb.lua @@ -125,6 +125,7 @@ return { bogus = 1, spawns_name = "cormine1", spawns_surface = "LAND", + stockpilelimit = 1, }, damage = { default = 1, diff --git a/units/Legion/Air/T2 Air/legphoenix.lua b/units/Legion/Air/T2 Air/legphoenix.lua index 23cfb9a4702..bc20027d2d0 100644 --- a/units/Legion/Air/T2 Air/legphoenix.lua +++ b/units/Legion/Air/T2 Air/legphoenix.lua @@ -10,9 +10,6 @@ return { canfly = true, canattack = true, canmove = true, - collisionvolumeoffsets = "0 0 5", - collisionvolumescales = "110 20 60",--yes this is unconventional but needs to be this way (passes the Drivver Test) - collisionvolumetype = "Box", collide = false, cruisealtitude = 220, explodeas = "largeexplosiongeneric", @@ -45,8 +42,8 @@ return { wingdrag = 0.125, customparams = { unitgroup = 'weapon', - model_author = "Hornet", - normaltex = "unittextures/cor_normal.dds", + model_author = "Protar/Hornet", + normaltex = "unittextures/leg_normal.dds", subfolder = "Legionaircraft/T2", techlevel = 2, }, @@ -54,9 +51,6 @@ return { dead = { blocking = true, category = "corpses", - collisionvolumeoffsets = "0 0 0", - collisionvolumescales = "110 10 45", - collisionvolumetype = "Box", damage = 1200, featuredead = "HEAP", footprintx = 4, @@ -69,8 +63,6 @@ return { heap = { blocking = false, category = "heaps", - collisionvolumescales = "55.0 4.0 6.0", - collisionvolumetype = "cylY", damage = 600, footprintx = 3, footprintz = 3, @@ -159,6 +151,9 @@ return { default = 145, vtol = 5, }, + customparams = { + sweepfire=7, --multiplier for displayed dps during the 'bonus' sweepfire stage, needed for DPS calcs + } }, legphtarg = {--targetting only areaofeffect = 121, diff --git a/units/Legion/Air/legcib.lua b/units/Legion/Air/legcib.lua index 4e2452a5f97..f1c8a8d4db0 100644 --- a/units/Legion/Air/legcib.lua +++ b/units/Legion/Air/legcib.lua @@ -112,6 +112,7 @@ return { sprayangle = 300, weapontype = "AircraftBomb", customparams = { + lups_noshockwave = 1, nofire = true, }, damage = { diff --git a/units/Legion/Air/legmos.lua b/units/Legion/Air/legmos.lua index c23f0bcb4bb..1ab10bbbe4b 100644 --- a/units/Legion/Air/legmos.lua +++ b/units/Legion/Air/legmos.lua @@ -112,6 +112,9 @@ return { weapontimer = 2, weapontype = "MissileLauncher", weaponvelocity = 400, + customparams = { + stockpilelimit = 8, + }, damage = { default = 44, }, diff --git a/units/Legion/Bots/leggob.lua b/units/Legion/Bots/leggob.lua index d915844fe00..eb8fd1eca97 100644 --- a/units/Legion/Bots/leggob.lua +++ b/units/Legion/Bots/leggob.lua @@ -5,7 +5,7 @@ return { energycost = 500, metalcost = 25, buildpic = "LEGGOB.DDS", - buildtime = 750, + buildtime = 900, canmove = true, collisionvolumeoffsets = "0 -2 0", collisionvolumescales = "18 22 18", diff --git a/units/Legion/Bots/legkark.lua b/units/Legion/Bots/legkark.lua index e85edaffc45..49db925acdd 100644 --- a/units/Legion/Bots/legkark.lua +++ b/units/Legion/Bots/legkark.lua @@ -115,6 +115,7 @@ return { impactonly = 1, impulsefactor = 0, laserflaresize = 6, + leadlimit = 0, name = "Light g2g Heat Ray", noselfdamage = true, range = 360, @@ -125,7 +126,7 @@ return { soundhitwet = "sizzle", soundstart = "lasrfir3", soundtrigger = 1, - targetmoveerror = 0.2, + --targetmoveerror = 0.2, thickness = 1.6625, tolerance = 10000, turret = true, diff --git a/units/Legion/Constructors/legaca.lua b/units/Legion/Constructors/legaca.lua index f460f03e30f..6a51bd1fb6d 100644 --- a/units/Legion/Constructors/legaca.lua +++ b/units/Legion/Constructors/legaca.lua @@ -36,8 +36,8 @@ return { turnrate = 240, workertime = 100, buildoptions = { - "corfus", - "corafus", + "legfus", + "legafus", "legageo", "coruwageo", "legrampart", diff --git a/units/Legion/Constructors/legack.lua b/units/Legion/Constructors/legack.lua index 5a9fb73dd1e..fbfce23df1e 100644 --- a/units/Legion/Constructors/legack.lua +++ b/units/Legion/Constructors/legack.lua @@ -39,8 +39,8 @@ return { upright = false, workertime = 180, buildoptions = { - "corfus", - "corafus", + "legfus", + "legafus", "leggant", "legageo", "legrampart", diff --git a/units/Legion/Constructors/legacv.lua b/units/Legion/Constructors/legacv.lua index 80e93072fb7..4f5474ee589 100644 --- a/units/Legion/Constructors/legacv.lua +++ b/units/Legion/Constructors/legacv.lua @@ -42,8 +42,8 @@ return { turnrate = 363, workertime = 250, buildoptions = { - [1] = "corfus", - [2] = "corafus", + [1] = "legfus", + [2] = "legafus", [3] = "legageo", [4] = "legrampart", [5] = "legmoho", diff --git a/units/Legion/Constructors/legch.lua b/units/Legion/Constructors/legch.lua index f12113a2393..16c28e9d749 100644 --- a/units/Legion/Constructors/legch.lua +++ b/units/Legion/Constructors/legch.lua @@ -79,7 +79,7 @@ return { [39] = "corfrad", [40] = "corfhlt", [41] = "corfrt", - [42] = "corptl", + [42] = "cortl", [43] = "coruwgeo", [44] = "corasy", [45] = "leghive", diff --git a/units/Legion/Constructors/legotter.lua b/units/Legion/Constructors/legotter.lua index cd28ce018e4..556ad2f0819 100644 --- a/units/Legion/Constructors/legotter.lua +++ b/units/Legion/Constructors/legotter.lua @@ -83,7 +83,7 @@ return { [39] = "corfrad", [40] = "corfhlt", [41] = "corfrt", - [42] = "corptl", + [42] = "cortl", [43] = "coruwgeo", [44] = "leghive", [45] = "legfhive", diff --git a/units/Legion/Defenses/legabm.lua b/units/Legion/Defenses/legabm.lua index c116e3a796e..0925ea9424d 100644 --- a/units/Legion/Defenses/legabm.lua +++ b/units/Legion/Defenses/legabm.lua @@ -99,7 +99,7 @@ return { select = { [1] = "loadwtr1", }, - }, + }, weapondefs = { fmd_rocket = { areaofeffect = 420, @@ -148,6 +148,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/Legion/Defenses/legacluster.lua b/units/Legion/Defenses/legacluster.lua index f68d7e2e3b0..a9df9db9e4c 100644 --- a/units/Legion/Defenses/legacluster.lua +++ b/units/Legion/Defenses/legacluster.lua @@ -24,7 +24,6 @@ return { maxwaterdepth = 0, nochasecategory = "MOBILE", objectname = "Units/LEGACLUSTER.s3o", - onoffable = true, script = "Units/LEGACLUSTER.cob", seismicsignature = 0, selfdestructas = "largeBuildingExplosionGenericSelfd", @@ -39,7 +38,6 @@ return { unitgroup = 'weapon', model_author = "ZephyrSkies", normaltex = "unittextures/leg_normal.dds", - onoffname = "trajectory", subfolder = "Legion/Defenses", }, featuredefs = { @@ -136,6 +134,7 @@ return { cluster = true, exclude_preaim = true, number = 6, + smart_priority = true, }, damage = { default = 200, @@ -173,10 +172,12 @@ return { }, plasma_high = { accuracy = 50, - areaofeffect = 210, + areaofeffect = 120, avoidfeature = false, + -- burst = 3, + -- burstrate = 0.2, + -- sprayangle = 200, cegtag = "starfire_arty", - craterareaofeffect = 240, craterboost = 0, cratermult = 0, edgeeffectiveness = 0.4, @@ -184,28 +185,65 @@ return { gravityaffected = "true", hightrajectory = 1, impulsefactor = 0.5, - name = "Pop-up High-Trajectory Long-Range Heavy g2g Cluster Plasma Cannon", + name = "Pop-Up Long-range g2g Cluster Plasma Cannon", noselfdamage = true, range = 1380, - reloadtime = 6.3, + reloadtime = 2.6, rgbcolor = "0.7 0.7 1.0", - soundhit = "xplolrg4", - soundhitwet = "splslrg", - soundstart = "cannhvy6", + soundhit = "xplomed2", + soundhitwet = "splsmed", + soundstart = "cannhvy5", turret = true, weapontype = "Cannon", weaponvelocity = 450, customparams = { cluster = true, exclude_preaim = true, - number = 8, + number = 6, + smart_backup = true, }, damage = { - default = 250, + default = 200, + lboats = 200, subs = 50, vtol = 50, }, }, + smart_trajectory_dummy = { + accuracy = 50, + areaofeffect = 120, + avoidfeature = false, + -- burst = 3, + -- burstrate = 0.2, + -- sprayangle = 200, + cegtag = "starfire_arty", + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.4, + explosiongenerator = "custom:ministarfire-explosion", + gravityaffected = "true", + impulsefactor = 0.5, + name = "Pop-Up Long-range g2g Cluster Plasma Cannon", + noselfdamage = true, + range = 1380, + reloadtime = 2.6, + rgbcolor = "0.7 0.7 1.0", + soundhit = "xplomed2", + soundhitwet = "splsmed", + soundstart = "cannhvy5", + turret = true, + weapontype = "Cannon", + weaponvelocity = 450, + customparams = { + cluster = true, + exclude_preaim = true, + number = 6, + smart_trajectory_checker = true, + }, + damage = { + default = 0 + }, + }, }, weapons = { [1] = { @@ -219,6 +257,13 @@ return { def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, + [3] = { + badtargetcategory = "VTOL", + def = "smart_trajectory_dummy", + maindir = "0 1 0", + maxangledif = 230, + onlytargetcategory = "SURFACE", + }, }, }, } diff --git a/units/Legion/Defenses/legcluster.lua b/units/Legion/Defenses/legcluster.lua index 69d7f1a30e2..05c0f90368c 100644 --- a/units/Legion/Defenses/legcluster.lua +++ b/units/Legion/Defenses/legcluster.lua @@ -23,7 +23,6 @@ return { maxwaterdepth = 0, nochasecategory = "MOBILE", objectname = "Units/LEGCLUSTER.s3o", - onoffable = true, script = "Units/LEGCLUSTER.cob", seismicsignature = 0, selfdestructas = "largeBuildingExplosionGenericSelfd", @@ -38,7 +37,6 @@ return { unitgroup = 'weapon', model_author = "ZephyrSkies", normaltex = "unittextures/leg_normal.dds", - onoffname = "trajectory", subfolder = "CorBuildings/LandDefenceOffence", }, featuredefs = { @@ -132,6 +130,7 @@ return { cluster = true, exclude_preaim = true, number = 3, + smart_priority = true, }, damage = { default = 150, @@ -168,10 +167,9 @@ return { }, plasma_high = { accuracy = 75, - areaofeffect = 200, + areaofeffect = 120, avoidfeature = false, cegtag = "starfire_arty", - craterareaofeffect = 208, craterboost = 0, cratermult = 0, edgeeffectiveness = 0.4, @@ -179,10 +177,10 @@ return { gravityaffected = "true", hightrajectory = 1, impulsefactor = 0.5, - name = "High-Trajectory Long-Range g2g Cluster Plasma Cannon", + name = "Long-Range g2g Cluster Plasma Cannon", noselfdamage = true, range = 1000, - reloadtime = 9.4, + reloadtime = 4.0, rgbcolor = "0.7 0.7 1.0", soundhit = "xplomed2", soundhitwet = "splsmed", @@ -193,14 +191,46 @@ return { customparams = { cluster = true, exclude_preaim = true, - number = 6, + number = 3, + smart_backup = true, }, damage = { - default = 200, + default = 150, + lboats = 150, subs = 37, vtol = 37, }, }, + smart_trajectory_dummy = { + accuracy = 75, + areaofeffect = 120, + avoidfeature = false, + cegtag = "starfire_arty", + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.4, + explosiongenerator = "custom:ministarfire-explosion", + gravityaffected = "true", + impulsefactor = 0.5, + name = "Long-Range g2g Cluster Plasma Cannon", + noselfdamage = true, + range = 1000, + reloadtime = 4.0, + rgbcolor = "0.7 0.7 1.0", + soundhit = "xplomed2", + soundhitwet = "splsmed", + soundstart = "cannhvy5", + turret = true, + weapontype = "Cannon", + weaponvelocity = 450, + customparams = { + exclude_preaim = true, + smart_trajectory_checker = true, + }, + damage = { + default = 0, + }, + }, }, weapons = { [1] = { @@ -214,6 +244,13 @@ return { def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, + [3] = { + badtargetcategory = "VTOL", + def = "smart_trajectory_dummy", + maindir = "0 1 0", + maxangledif = 230, + onlytargetcategory = "SURFACE", + }, }, }, } diff --git a/units/Legion/Defenses/legflak.lua b/units/Legion/Defenses/legflak.lua index c855e6c3dfd..026fb8c2654 100644 --- a/units/Legion/Defenses/legflak.lua +++ b/units/Legion/Defenses/legflak.lua @@ -35,8 +35,8 @@ return { buildinggrounddecalsizex = 5, buildinggrounddecaldecayspeed = 30, unitgroup = 'aa', - model_author = "Cremuss", - normaltex = "unittextures/cor_normal.dds", + model_author = "Tharsis", + normaltex = "unittextures/leg_normal.dds", removewait = true, subfolder = "Legion/defenses", techlevel = 2, @@ -115,7 +115,6 @@ return { burstrate = 0.02, burnblow = true, canattackground = false, - cegtag = "flaktrailaamg", collidefriendly = false, craterareaofeffect = 192, craterboost = 0, @@ -138,13 +137,16 @@ return { soundhitvolume = 7.5, soundstartvolume = 5, stages = 0, - --thickness = 0.91, + texture1 = "shot", + texture2 = "empty", + thickness = 2.5, + tolerance = 16000, turret = true, weapontimer = 1, weapontype = "LaserCannon", weaponvelocity = 3642, damage = { - default = 40, + default = 1, vtol = 60, }, rgbcolor = "1 0.33 0.7", @@ -152,14 +154,14 @@ return { fallOffRate = 0.2, ownerExpAccWeight = 1.35,--does this affect sprayangle too? sprayangle = 600, - thickness = 0.91, - tolerance = 6000, }, }, weapons = { [1] = { badtargetcategory = "NOTAIR LIGHTAIRSCOUT", + burstcontrolwhenoutofarc = 2, def = "legflak_gun", + fastautoretargeting = true, onlytargetcategory = "VTOL", }, }, diff --git a/units/Legion/Defenses/leglht.lua b/units/Legion/Defenses/leglht.lua index d1efe7608f6..f3ed37e0c4f 100644 --- a/units/Legion/Defenses/leglht.lua +++ b/units/Legion/Defenses/leglht.lua @@ -122,6 +122,7 @@ return { impactonly = 1, impulsefactor = 0, laserflaresize = 7, + leadlimit = 0, name = "Light g2g Heat Ray", noselfdamage = true, predictboost = 1, diff --git a/units/Legion/Defenses/legperdition.lua b/units/Legion/Defenses/legperdition.lua index 49b261d621b..499ff562f25 100644 --- a/units/Legion/Defenses/legperdition.lua +++ b/units/Legion/Defenses/legperdition.lua @@ -179,13 +179,14 @@ return { area_onhit_damage = 175, area_onhit_range = 150, area_onhit_time = 15, + stockpilelimit = 10, }, damage = { commanders = 700, default = 2000,--plus 150*15 within 150 area }, }, - + }, weapons = { [1] = { diff --git a/units/Legion/Defenses/legsilo.lua b/units/Legion/Defenses/legsilo.lua index 6907b5f293b..42af5c19a56 100644 --- a/units/Legion/Defenses/legsilo.lua +++ b/units/Legion/Defenses/legsilo.lua @@ -147,6 +147,7 @@ return { weaponvelocity = 1600, customparams = { place_target_on_ground = "true", + stockpilelimit = 10, }, damage = { commanders = 2500, diff --git a/units/Legion/Defenses/legstarfall.lua b/units/Legion/Defenses/legstarfall.lua index a34572969ac..09c0e7fa831 100644 --- a/units/Legion/Defenses/legstarfall.lua +++ b/units/Legion/Defenses/legstarfall.lua @@ -136,6 +136,9 @@ return { weapontimer = 14, weapontype = "Cannon", weaponvelocity = 900, + --customparams = { + -- stockpilelimit = 1, + --}, damage = { default = 600, shields = 375, diff --git a/units/Legion/Economy/legafus.lua b/units/Legion/Economy/legafus.lua new file mode 100644 index 00000000000..8c6f7e7f765 --- /dev/null +++ b/units/Legion/Economy/legafus.lua @@ -0,0 +1,99 @@ +return { + legafus = { + buildangle = 4096, + buildpic = "LEGAFUS.DDS", + buildtime = 312500, + canrepeat = false, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "111 103 110", + collisionvolumetype = "Box", + corpse = "DEAD", + damagemodifier = 0.95, + energycost = 69000, + energymake = 3000, + energystorage = 9000, + explodeas = "advancedFusionExplosion", + footprintx = 6, + footprintz = 6, + health = 7900, + idleautoheal = 5, + idletime = 1800, + maxacc = 0, + maxdec = 0, + maxslope = 13, + maxwaterdepth = 0, + metalcost = 9700, + objectname = "Units/LEGAFUS.s3o", + script = "Units/LEGAFUS.cob", + seismicsignature = 0, + selfdestructas = "advancedFusionExplosionSelfd", + sightdistance = 273, + customparams = { + buildinggrounddecaldecayspeed = 30, + buildinggrounddecalsizex = 8, + buildinggrounddecalsizey = 8, + buildinggrounddecaltype = "decals/legafus_aoplane.dds", + model_author = "Protar/Ghoulish", + normaltex = "unittextures/leg_normal.dds", + removestop = true, + removewait = true, + subfolder = "Legion/Economy", + techlevel = 2, + unitgroup = "energy", + usebuildinggrounddecal = true, + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "111 103 110", + collisionvolumetype = "Box", + damage = 16290, + featuredead = "HEAP", + footprintx = 6, + footprintz = 6, + height = 40, + metal = 6441, + object = "Units/legafus_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "96.0 14.0 6.0", + collisionvolumetype = "box", + damage = 8145, + footprintx = 6, + footprintz = 6, + height = 4, + metal = 2576, + object = "Units/arm4X4A.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + select = { + [1] = "fusion1", + }, + }, + }, +} diff --git a/units/Legion/Economy/legfus.lua b/units/Legion/Economy/legfus.lua new file mode 100644 index 00000000000..c7914c1f7a8 --- /dev/null +++ b/units/Legion/Economy/legfus.lua @@ -0,0 +1,100 @@ +return { + legfus = { + activatewhenbuilt = true, + buildangle = 4096, + buildpic = "LEGFUS.DDS", + buildtime = 70000, + canrepeat = false, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "101 67 69", + collisionvolumetype = "Box", + corpse = "DEAD", + energycost = 21000, + energymake = 1000, + energystorage = 2500, + explodeas = "fusionExplosion", + footprintx = 6, + footprintz = 5, + health = 4450, + hidedamage = true, + idleautoheal = 5, + idletime = 1800, + maxacc = 0, + maxdec = 0, + maxslope = 10, + maxwaterdepth = 0, + metalcost = 4300, + objectname = "Units/LEGFUS.s3o", + script = "Units/LEGFUS.cob", + seismicsignature = 0, + selfdestructas = "fusionExplosionSelfd", + sightdistance = 273, + customparams = { + buildinggrounddecaldecayspeed = 30, + buildinggrounddecalsizex = 6, + buildinggrounddecalsizey = 6, + buildinggrounddecaltype = "decals/legfus_aoplane.dds", + model_author = "Protar", + normaltex = "unittextures/leg_normal.dds", + removestop = true, + removewait = true, + subfolder = "Legion/Economy", + techlevel = 2, + unitgroup = "energy", + usebuildinggrounddecal = true, + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "101 67 69", + collisionvolumetype = "Box", + damage = 2700, + featuredead = "HEAP", + footprintx = 6, + footprintz = 5, + height = 40, + metal = 2603, + object = "Units/legfus_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "85.0 14.0 6.0", + collisionvolumetype = "cylY", + damage = 1350, + footprintx = 4, + footprintz = 4, + height = 4, + metal = 1041, + object = "Units/arm4X4A.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + select = { + [1] = "fusion1", + }, + }, + }, +} diff --git a/units/Legion/Economy/legrampart.lua b/units/Legion/Economy/legrampart.lua index c5d57470011..bdb7a11d695 100644 --- a/units/Legion/Economy/legrampart.lua +++ b/units/Legion/Economy/legrampart.lua @@ -125,6 +125,9 @@ return { weapontimer = 2.5, weapontype = "StarburstLauncher", weaponvelocity = 6000, + customparams = { + stockpilelimit = 20, + }, damage = { default = 1500, }, diff --git a/units/Legion/Hovercraft/legah.lua b/units/Legion/Hovercraft/legah.lua index 1bc2ec50c7a..d78c135fbfc 100644 --- a/units/Legion/Hovercraft/legah.lua +++ b/units/Legion/Hovercraft/legah.lua @@ -6,7 +6,7 @@ return { maxdec = 0.06316, energycost = 4300, metalcost = 210, - buildpic = "legah.DDS", + buildpic = "LEGAH.DDS", buildtime = 3300, canmove = true, collisionvolumeoffsets = "0 -3 0", diff --git a/units/Legion/Hovercraft/legmh.lua b/units/Legion/Hovercraft/legmh.lua index bd6d8cf81c4..aacc4df5d66 100644 --- a/units/Legion/Hovercraft/legmh.lua +++ b/units/Legion/Hovercraft/legmh.lua @@ -4,7 +4,7 @@ return { maxdec = 0.04415, energycost = 3100, metalcost = 190, - buildpic = "legmh.DDS", + buildpic = "LEGMH.DDS", buildtime = 3300, canmove = true, collisionvolumeoffsets = "0 1 0", diff --git a/units/Legion/Labs/legaap.lua b/units/Legion/Labs/legaap.lua index fa05b7d1cfc..50bfa66950f 100644 --- a/units/Legion/Labs/legaap.lua +++ b/units/Legion/Labs/legaap.lua @@ -9,8 +9,8 @@ return { buildpic = "LEGAAP.DDS", buildtime = 20700, canmove = true, - collisionvolumeoffsets = "0 4 0", - collisionvolumescales = "142 64 142", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "142 50 142", collisionvolumetype = "Box", corpse = "DEAD", energystorage = 200, @@ -23,10 +23,10 @@ return { maxslope = 15, maxwaterdepth = 0, metalstorage = 200, - objectname = "Units/CORAAP.s3o", + objectname = "Units/LEGAAP.s3o", radardistance = 1000, radaremitheight = 50, - script = "Units/CORAAP.cob", + script = "Units/LEGAAP.cob", seismicsignature = 0, selfdestructas = "largeBuildingExplosionGenericSelfd", sightdistance = 305.5, @@ -38,7 +38,7 @@ return { [2] = "legstronghold", [3] = "legnap", [4] = "legmineb", - [5] = "cortitan", + [5] = "legatorpbomber", [6] = "legionnaire", [7] = "legwhisper", [8] = "legfort", @@ -47,42 +47,42 @@ return { }, customparams = { usebuildinggrounddecal = true, - buildinggrounddecaltype = "decals/coraap_aoplane.dds", + buildinggrounddecaltype = "decals/legaap_aoplane.dds", buildinggrounddecalsizey = 12, buildinggrounddecalsizex = 12, buildinggrounddecaldecayspeed = 30, unitgroup = 'buildert2', airfactory = true, - model_author = "Mr Bob", - normaltex = "unittextures/cor_normal.dds", - subfolder = "CorBuildings/LandFactories", + model_author = "Protar/Ghoulish", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Labs", techlevel = 2, }, featuredefs = { dead = { blocking = true, category = "corpses", - collisionvolumeoffsets = "0 -12 -22", - collisionvolumescales = "98 32 52", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "142 50 142", collisionvolumetype = "Box", damage = 2112, featuredead = "HEAP", - footprintx = 7, - footprintz = 6, + footprintx = 9, + footprintz = 9, height = 20, metal = 1936, - object = "Units/coraap_dead.s3o", + object = "Units/legaap_dead.s3o", reclaimable = true, }, heap = { blocking = false, category = "heaps", damage = 1056, - footprintx = 6, - footprintz = 6, + footprintx = 9, + footprintz = 9, height = 4, metal = 968, - object = "Units/cor6X6A.s3o", + object = "Units/cor7X7A.s3o", reclaimable = true, resurrectable = 0, }, diff --git a/units/Legion/Labs/legalab.lua b/units/Legion/Labs/legalab.lua index 6827dc62d98..82eacc3c5b4 100644 --- a/units/Legion/Labs/legalab.lua +++ b/units/Legion/Labs/legalab.lua @@ -9,8 +9,8 @@ return { buildpic = "LEGALAB.DDS", buildtime = 16800, canmove = true, - collisionvolumeoffsets = "0 2 0", - collisionvolumescales = "140 56 136", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "140 52 140", collisionvolumetype = "Box", corpse = "DEAD", energystorage = 200, @@ -23,9 +23,9 @@ return { maxslope = 15, maxwaterdepth = 0, metalstorage = 200, - objectname = "Units/CORALAB.s3o", + objectname = "Units/LEGALAB.s3o", radardistance = 50, - script = "Units/CORALAB.lua", + script = "Units/LEGALAB.cob", seismicsignature = 0, selfdestructas = "largeBuildingexplosiongenericSelfd", sightdistance = 288.60001, @@ -49,46 +49,45 @@ return { [14] = "corvoyr", [15] = "corspy", [16] = "corspec", - [17] = "cormando", - [18] = "legdecom", + [17] = "legdecom", }, customparams = { usebuildinggrounddecal = true, - buildinggrounddecaltype = "decals/coralab_aoplane.dds", + buildinggrounddecaltype = "decals/legalab_aoplane.dds", buildinggrounddecalsizey = 12, buildinggrounddecalsizex = 12, buildinggrounddecaldecayspeed = 30, unitgroup = 'buildert2', - model_author = "Mr Bob", - normaltex = "unittextures/cor_normal.dds", - subfolder = "CorBuildings/LandFactories", + model_author = "Protar/Ghoulish", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Labs", techlevel = 2, }, featuredefs = { dead = { blocking = true, category = "corpses", - collisionvolumeoffsets = "0 -16 0", - collisionvolumescales = "100 34 90", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "140 52 140", collisionvolumetype = "Box", damage = 2443, featuredead = "HEAP", - footprintx = 5, - footprintz = 6, + footprintx = 9, + footprintz = 9, height = 20, metal = 1743, - object = "Units/coralab_dead.s3o", + object = "Units/legalab_dead.s3o", reclaimable = true, }, heap = { blocking = false, category = "heaps", damage = 1222, - footprintx = 5, - footprintz = 5, + footprintx = 9, + footprintz = 9, height = 4, metal = 872, - object = "Units/cor5X5A.s3o", + object = "Units/cor7X7A.s3o", reclaimable = true, resurrectable = 0, }, diff --git a/units/Legion/Labs/legap.lua b/units/Legion/Labs/legap.lua index cc3a8474ed8..c91ea567f62 100644 --- a/units/Legion/Labs/legap.lua +++ b/units/Legion/Labs/legap.lua @@ -10,12 +10,12 @@ return { buildtime = 7180, canmove = true, collisionvolumeoffsets = "0 0 0", - collisionvolumescales = "128 33 96", + collisionvolumescales = "96 45 96", collisionvolumetype = "Box", corpse = "DEAD", energystorage = 100, explodeas = "largeBuildingexplosiongeneric", - footprintx = 9, + footprintx = 6, footprintz = 6, idleautoheal = 5, idletime = 1800, @@ -24,16 +24,16 @@ return { maxslope = 15, maxwaterdepth = 0, metalstorage = 100, - objectname = "Units/CORAP.s3o", + objectname = "Units/LEGAP.s3o", radardistance = 510, radaremitheight = 40, - script = "Units/CORAP.cob", + script = "Units/LEGAP.cob", seismicsignature = 0, selfdestructas = "largeBuildingexplosiongenericSelfd", sightdistance = 273, terraformspeed = 500, workertime = 100, - yardmap = "ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo", + yardmap = "oooooo oooooo oooooo oooooo oooooo oooooo", buildoptions = { [1] = "legca", [2] = "legfig", @@ -45,30 +45,30 @@ return { }, customparams = { usebuildinggrounddecal = true, - buildinggrounddecaltype = "decals/corap_aoplane.dds", + buildinggrounddecaltype = "decals/legap_aoplane.dds", buildinggrounddecalsizey = 9, - buildinggrounddecalsizex = 12, + buildinggrounddecalsizex = 9, buildinggrounddecaldecayspeed = 30, unitgroup = 'builder', airfactory = true, - model_author = "Mr Bob", - normaltex = "unittextures/cor_normal.dds", - subfolder = "CorBuildings/LandFactories", + model_author = "Protar/Ghoulish", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Labs", }, featuredefs = { dead = { blocking = true, category = "corpses", - collisionvolumeoffsets = "0 -14 -23", - collisionvolumescales = "110 33 50", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "96 45 96", collisionvolumetype = "Box", damage = 1155, featuredead = "HEAP", - footprintx = 7, + footprintx = 6, footprintz = 6, height = 20, metal = 540, - object = "Units/corap_dead.s3o", + object = "Units/legap_dead.s3o", reclaimable = true, }, heap = { diff --git a/units/Legion/Labs/legavp.lua b/units/Legion/Labs/legavp.lua index 9a0e2e957b7..48d2e727b37 100644 --- a/units/Legion/Labs/legavp.lua +++ b/units/Legion/Labs/legavp.lua @@ -9,7 +9,7 @@ return { buildpic = "LEGAVP.DDS", buildtime = 18500, canmove = true, - collisionvolumeoffsets = "0 8 0", + collisionvolumeoffsets = "0 0 5", collisionvolumescales = "144 70 144", collisionvolumetype = "Box", corpse = "DEAD", @@ -24,15 +24,34 @@ return { maxslope = 15, maxwaterdepth = 0, metalstorage = 200, - objectname = "Units/CORAVP.s3o", + objectname = "Units/LEGAVP.s3o", radardistance = 50, - script = "Units/CORAVP.cob", + script = "Units/LEGAVP.cob", seismicsignature = 0, selfdestructas = "largeBuildingExplosionGenericSelfd", sightdistance = 286, terraformspeed = 1000, workertime = 300, - yardmap = "ooooooooo ooooooooo ooooooooo oocccccoo oocccccoo oocccccoo oocccccoo oocccccoo oocccccoo", + yardmap = [[h + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oo oo oo oo oo oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + oo oo oc cc cc cc co oo oo + ]], buildoptions = { "legacv", "legmrv", @@ -44,29 +63,29 @@ return { "legvcarry", "legavroc", "leginf", - "corsent", + "legvflak", "cormabm", - "coreter", - "corvrad", + "legavjam", + "legavrad", }, customparams = { - usebuildinggrounddecal = true, + usebuildinggrounddecal = false, buildinggrounddecaltype = "decals/coravp_aoplane.dds", buildinggrounddecalsizey = 12, buildinggrounddecalsizex = 12, buildinggrounddecaldecayspeed = 0.01, unitgroup = 'buildert2', - model_author = "Mr Bob", - normaltex = "unittextures/cor_normal.dds", - subfolder = "CorBuildings/LandFactories", + model_author = "ZephyrSkies", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Labs", techlevel = 2, }, featuredefs = { dead = { blocking = true, category = "corpses", - collisionvolumeoffsets = "0 -6 0", - collisionvolumescales = "124 30 104", + collisionvolumeoffsets = "0 0 5", + collisionvolumescales = "144 70 144", collisionvolumetype = "Box", damage = 2777, featuredead = "HEAP", @@ -74,7 +93,7 @@ return { footprintz = 6, height = 20, metal = 1721, - object = "Units/coravp_dead.s3o", + object = "Units/legavp_dead.s3o", reclaimable = true, }, heap = { diff --git a/units/Legion/Labs/leggant.lua b/units/Legion/Labs/leggant.lua index 9a0f62ab429..18bccf94cd6 100644 --- a/units/Legion/Labs/leggant.lua +++ b/units/Legion/Labs/leggant.lua @@ -35,10 +35,10 @@ return { [1] = "corkorg", [2] = "corkarg", [3] = "corjugg", - [4] = "corshiva", + [4] = "legjav", [5] = "corcat", [6] = "corsok", - [7] = "cordemon", + [7] = "legerailtank", [8] = "legpede", [9] = "leegmech", [10] = "legkeres", diff --git a/units/Legion/Labs/leghp.lua b/units/Legion/Labs/leghp.lua index 61731600a88..38dbcfe629c 100644 --- a/units/Legion/Labs/leghp.lua +++ b/units/Legion/Labs/leghp.lua @@ -5,11 +5,11 @@ return { energycost = 3000, metalcost = 900, builder = true, - buildpic = "leghp.DDS", + buildpic = "LEGHP.DDS", buildtime = 11000, canmove = true, - collisionvolumeoffsets = "0 5 0", - collisionvolumescales = "96 32 96", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "96 35 96", collisionvolumetype = "Box", corpse = "DEAD", energystorage = 200, @@ -22,8 +22,8 @@ return { maxslope = 15, maxwaterdepth = 0, metalstorage = 200, - objectname = "Units/CORHP.s3o", - script = "Units/CORHP.cob", + objectname = "Units/LEGHP.s3o", + script = "Units/LEGHP.cob", seismicsignature = 0, selfdestructas = "largeBuildingExplosionGenericSelfd", sightdistance = 312, @@ -40,37 +40,40 @@ return { }, customparams = { usebuildinggrounddecal = true, - buildinggrounddecaltype = "decals/corhp_aoplane.dds", + buildinggrounddecaltype = "decals/leghp_aoplane.dds", buildinggrounddecalsizey = 9, buildinggrounddecalsizex = 9, buildinggrounddecaldecayspeed = 30, unitgroup = 'builder', - model_author = "Mr Bob", - normaltex = "unittextures/cor_normal.dds", - subfolder = "CorBuildings/LandFactories", + model_author = "Protar", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Labs", }, featuredefs = { dead = { blocking = true, category = "corpses", collisionvolumeoffsets = "0 0 0", - collisionvolumescales = "120 26 108", + collisionvolumescales = "96 35 96", collisionvolumetype = "Box", damage = 2014, featuredead = "HEAP", - footprintx = 8, - footprintz = 7, + footprintx = 6, + footprintz = 6, height = 20, metal = 662, - object = "Units/corhp_dead.s3o", + object = "Units/leghp_dead.s3o", reclaimable = true, }, heap = { blocking = false, category = "heaps", + collisionvolumeoffsets = "0 5 0", + collisionvolumescales = "96 12 96", + collisionvolumetype = "Box", damage = 1007, - footprintx = 8, - footprintz = 7, + footprintx = 6, + footprintz = 6, height = 4, metal = 265, object = "Units/cor7X7D.s3o", diff --git a/units/Legion/Labs/legvp.lua b/units/Legion/Labs/legvp.lua index 3f15b4930d4..e7c2fe530a8 100644 --- a/units/Legion/Labs/legvp.lua +++ b/units/Legion/Labs/legvp.lua @@ -9,8 +9,8 @@ return { buildpic = "LEGVP.DDS", buildtime = 7200, canmove = true, - collisionvolumeoffsets = "0 0 0", - collisionvolumescales = "96 40 96", + collisionvolumeoffsets = "0 19 0", + collisionvolumescales = "101 53 106", collisionvolumetype = "Box", corpse = "DEAD", energystorage = 100, @@ -19,20 +19,33 @@ return { footprintz = 6, idleautoheal = 5, idletime = 1800, - levelground = false, + levelground = true, health = 3000, maxslope = 15, maxwaterdepth = 0, metalstorage = 100, - objectname = "Units/CORVP.s3o", + objectname = "Units/LEGVP.s3o", radardistance = 50, - script = "Units/CORVP.lua", + script = "Units/LEGVP.cob", seismicsignature = 0, selfdestructas = "largeBuildingexplosiongenericSelfd", sightdistance = 279, terraformspeed = 500, workertime = 100, - yardmap = "oooooo oooooo occcco occcco occcco occcco", + yardmap = [[h + oo oo oo oo oo oo + oo oo oo oo oo oo + oo oo oo oo oo oo + oo oo oo oo oo oo + oc cc cc cc oo oo + oc cc cc cc oo oo + oc cc cc cc oo oo + oc cc cc cc oo oo + oc cc cc cc oo oo + oc cc cc cc oo oo + oc cc cc cc oo oo + oc cc cc cc oo oo + ]], buildoptions = { [1] = "legscout", [2] = "legcv", @@ -47,14 +60,14 @@ return { }, customparams = { usebuildinggrounddecal = true, - buildinggrounddecaltype = "decals/corvp_aoplane.dds", + buildinggrounddecaltype = "decals/legvp_aoplane.dds", buildinggrounddecalsizey = 9, buildinggrounddecalsizex = 9, buildinggrounddecaldecayspeed = 30, unitgroup = 'builder', - model_author = "Mr Bob", - normaltex = "unittextures/cor_normal.dds", - subfolder = "CorBuildings/LandFactories", + model_author = "Protar/Ghoulish", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Labs", }, featuredefs = { dead = { @@ -65,19 +78,19 @@ return { collisionvolumetype = "BOX", damage = 1590, featuredead = "HEAP", - footprintx = 7, - footprintz = 7, + footprintx = 6, + footprintz = 6, height = 20, metal = 470, - object = "Units/corvp_dead.s3o", + object = "Units/legvp_dead.s3o", reclaimable = true, }, heap = { blocking = false, category = "heaps", damage = 795, - footprintx = 7, - footprintz = 7, + footprintx = 6, + footprintz = 6, height = 4, metal = 188, object = "Units/cor7X7B.s3o", diff --git a/units/Legion/Legion EvoCom/legcomlvl10.lua b/units/Legion/Legion EvoCom/legcomlvl10.lua index 70ea4df1b5f..ec2b3b55a94 100644 --- a/units/Legion/Legion EvoCom/legcomlvl10.lua +++ b/units/Legion/Legion EvoCom/legcomlvl10.lua @@ -65,7 +65,7 @@ return { workertime = 1796, buildoptions = { [1] = "legmoho", - [2] = "corfus", + [2] = "legfus", [3] = "legwin", [5] = "cormmkr", [6] = "legadvsol", @@ -81,7 +81,7 @@ return { [17] = "legshot", [18] = "legmrv", [19] = "leginfestor", - [20] = "corsent", + [20] = "legvflak", [21] = "legflak", [22] = "coratl", [23] = "legmed", @@ -420,6 +420,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 5, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legcomlvl2.lua b/units/Legion/Legion EvoCom/legcomlvl2.lua index 1c189eb10fd..9ab52b0e5c6 100644 --- a/units/Legion/Legion EvoCom/legcomlvl2.lua +++ b/units/Legion/Legion EvoCom/legcomlvl2.lua @@ -313,48 +313,6 @@ return { commanders = 1, }, }, - napalmmissile = { --unused, left here in case it replaces the Dgun again. - areaofeffect = 200, - avoidfeature = false, - burnblow = true, - cegtag = "missiletraillarge-red", - commandfire = true, - craterboost = 0, - cratermult = 0, - edgeeffectiveness = 1, - explosiongenerator = "custom:burnfirecom", - gravityaffected = "true", - impulsefactor = 1.8, - model = "banishermissile.s3o", - name = "napalmmissile", - noselfdamage = true, - range = 450, - reloadtime = 7, - smoketrail = true, - smokePeriod = 7, - smoketime = 48, - smokesize = 11.3, - smokecolor = 0.82, - soundhit = "corban_b", - soundhitwet = "splsmed", - soundstart = "corban_a", - startvelocity = 240, - stockpile = true, - stockpiletime = 30, - texture1 = "null", - texture2 = "railguntrail", - tolerance = 9000, - turret = true, - turnrate = 5000, - trajectoryheight = 0.45, - weaponacceleration = 220, - weapontimer = 5, - weapontype = "MissileLauncher", - weaponvelocity = 650, - damage = { - default = 75, - }, - }, disintegrator = { areaofeffect = 36, avoidfeature = false, diff --git a/units/Legion/Legion EvoCom/legcomlvl3.lua b/units/Legion/Legion EvoCom/legcomlvl3.lua index 9fdf47c7bd7..4974cf536fd 100644 --- a/units/Legion/Legion EvoCom/legcomlvl3.lua +++ b/units/Legion/Legion EvoCom/legcomlvl3.lua @@ -333,48 +333,6 @@ return { commanders = 1, }, }, - napalmmissile = { --unused, left here in case it replaces the Dgun again. - areaofeffect = 300, - avoidfeature = false, - burnblow = true, - cegtag = "missiletraillarge-red", - commandfire = true, - craterboost = 0, - cratermult = 0, - edgeeffectiveness = 1, - explosiongenerator = "custom:burnfirecom-xl", - gravityaffected = "true", - impulsefactor = 2.7, - model = "banishermissile.s3o", - name = "napalmmissile", - noselfdamage = true, - range = 450, - reloadtime = 5, - smoketrail = true, - smokePeriod = 7, - smoketime = 48, - smokesize = 11.3, - smokecolor = 0.82, - soundhit = "corban_b", - soundhitwet = "splsmed", - soundstart = "corban_a", - startvelocity = 240, - stockpile = true, - stockpiletime = 25, - texture1 = "null", - texture2 = "railguntrail", - tolerance = 9000, - turret = true, - turnrate = 5000, - trajectoryheight = 0.45, - weaponacceleration = 220, - weapontimer = 5, - weapontype = "MissileLauncher", - weaponvelocity = 650, - damage = { - default = 150, - }, - }, botcannon = { accuracy = 0.2, areaofeffect = 10, @@ -421,6 +379,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 3, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legcomlvl4.lua b/units/Legion/Legion EvoCom/legcomlvl4.lua index 7d005b9c4f6..801febbed84 100644 --- a/units/Legion/Legion EvoCom/legcomlvl4.lua +++ b/units/Legion/Legion EvoCom/legcomlvl4.lua @@ -82,7 +82,7 @@ return { [18] = "legshot", [19] = "legstr", [20] = "leginfestor", - [21] = "corsent", + [21] = "legvflak", [22] = "legflak", [23] = "coratl", [24] = "legmed", @@ -326,47 +326,6 @@ return { default = 250, }, }, - napalmmissile = { --unused, left here in case it replaces Dgun again. - areaofeffect = 300, - avoidfeature = false, - burnblow = true, - cegtag = "missiletraillarge-red", - craterboost = 0, - cratermult = 0, - edgeeffectiveness = 1, - explosiongenerator = "custom:burnfirecom-xl", - gravityaffected = "true", - impulsefactor = 2.7, - model = "banishermissile.s3o", - name = "napalmmissile", - noselfdamage = true, - range = 600, - reloadtime = 3, - smoketrail = true, - smokePeriod = 7, - smoketime = 48, - smokesize = 11.3, - smokecolor = 0.82, - soundhit = "corban_b", - soundhitwet = "splsmed", - soundstart = "corban_a", - startvelocity = 240, - stockpile = true, - stockpiletime = 20, - texture1 = "null", - texture2 = "railguntrail", - tolerance = 9000, - turret = true, - turnrate = 5000, - trajectoryheight = 0.45, - weaponacceleration = 220, - weapontimer = 5, - weapontype = "MissileLauncher", - weaponvelocity = 650, - damage = { - default = 150, - }, - }, botcannon = { accuracy = 0.2, areaofeffect = 10, @@ -413,6 +372,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 3, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legcomlvl5.lua b/units/Legion/Legion EvoCom/legcomlvl5.lua index 5589d8cbaa8..02520560ee4 100644 --- a/units/Legion/Legion EvoCom/legcomlvl5.lua +++ b/units/Legion/Legion EvoCom/legcomlvl5.lua @@ -67,7 +67,7 @@ return { [1] = "legmoho", [2] = "legadvsol", [3] = "legwin", - [4] = "corfus", + [4] = "legfus", [5] = "cormmkr", [6] = "legsolar", [7] = "leggeo", @@ -82,7 +82,7 @@ return { [16] = "legshot", [17] = "legstr", [18] = "leginfestor", - [19] = "corsent", + [19] = "legvflak", [20] = "legflak", [21] = "coratl", [22] = "legmed", @@ -429,6 +429,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 4, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legcomlvl6.lua b/units/Legion/Legion EvoCom/legcomlvl6.lua index c6db5e40363..67b8b65458a 100644 --- a/units/Legion/Legion EvoCom/legcomlvl6.lua +++ b/units/Legion/Legion EvoCom/legcomlvl6.lua @@ -65,7 +65,7 @@ return { workertime = 811, buildoptions = { [1] = "legmoho", - [2] = "corfus", + [2] = "legfus", [3] = "legwin", [5] = "cormmkr", [6] = "legadvsol", @@ -81,7 +81,7 @@ return { [17] = "legshot", [18] = "legmrv", [19] = "leginfestor", - [20] = "corsent", + [20] = "legvflak", [21] = "legflak", [22] = "coratl", [23] = "legmed", @@ -418,6 +418,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 4, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legcomlvl7.lua b/units/Legion/Legion EvoCom/legcomlvl7.lua index 430ed78f651..191b4060f74 100644 --- a/units/Legion/Legion EvoCom/legcomlvl7.lua +++ b/units/Legion/Legion EvoCom/legcomlvl7.lua @@ -65,7 +65,7 @@ return { workertime = 989, buildoptions = { [1] = "legmoho", - [2] = "corfus", + [2] = "legfus", [3] = "legwin", [5] = "cormmkr", [6] = "legadvsol", @@ -81,7 +81,7 @@ return { [17] = "legshot", [18] = "legmrv", [19] = "leginfestor", - [20] = "corsent", + [20] = "legvflak", [21] = "legflak", [22] = "coratl", [23] = "legmed", @@ -418,6 +418,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 4, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legcomlvl8.lua b/units/Legion/Legion EvoCom/legcomlvl8.lua index abf31c9687a..5437d16bc9c 100644 --- a/units/Legion/Legion EvoCom/legcomlvl8.lua +++ b/units/Legion/Legion EvoCom/legcomlvl8.lua @@ -65,7 +65,7 @@ return { workertime = 1207, buildoptions = { [1] = "legmoho", - [2] = "corfus", + [2] = "legfus", [3] = "legwin", [5] = "cormmkr", [6] = "legadvsol", @@ -81,7 +81,7 @@ return { [17] = "legshot", [18] = "legmrv", [19] = "leginfestor", - [20] = "corsent", + [20] = "legvflak", [21] = "legflak", [22] = "coratl", [23] = "legmed", @@ -420,6 +420,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 5, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legcomlvl9.lua b/units/Legion/Legion EvoCom/legcomlvl9.lua index 986f32a8f86..a7e259f914c 100644 --- a/units/Legion/Legion EvoCom/legcomlvl9.lua +++ b/units/Legion/Legion EvoCom/legcomlvl9.lua @@ -65,7 +65,7 @@ return { workertime = 1472, buildoptions = { [1] = "legmoho", - [2] = "corfus", + [2] = "legfus", [3] = "legwin", [5] = "cormmkr", [6] = "legadvsol", @@ -81,7 +81,7 @@ return { [17] = "legshot", [18] = "legmrv", [19] = "leginfestor", - [20] = "corsent", + [20] = "legvflak", [21] = "legflak", [22] = "coratl", [23] = "legmed", @@ -425,6 +425,7 @@ return { spawns_expire = 25, spawns_surface = "LAND", -- Available: "LAND SEA" spawns_mode = "random", + stockpilelimit = 5, }, damage = { default = 0, diff --git a/units/Legion/Legion EvoCom/legevodecom.lua b/units/Legion/Legion EvoCom/legevodecom.lua index d04caf01744..ee476fc55c9 100644 --- a/units/Legion/Legion EvoCom/legevodecom.lua +++ b/units/Legion/Legion EvoCom/legevodecom.lua @@ -13,6 +13,7 @@ unitsTable['legdecomlvl3'].decoyfor = "legcomlvl3" unitsTable['legdecomlvl3'].customparams.decoyfor = "legcomlvl3" unitsTable['legdecomlvl3'].health = math.ceil(unitsTable['legdecomlvl3'].health*0.5) unitsTable['legdecomlvl3'].weapondefs.disintegrator.damage.default = 40 +unitsTable['legdecomlvl3'].weapondefs.botcannon.customparams.stockpilelimit = 1 unitsTable['legdecomlvl6'] = VFS.Include('units/Legion/Legion EvoCom/legcomlvl6.lua').legcomlvl6 --if this filepath is changed, the unit will no longer work! unitsTable['legdecomlvl6'].selfdestructas = "decoycommander" @@ -27,6 +28,7 @@ unitsTable['legdecomlvl6'].customparams.decoyfor = "legcomlvl6" unitsTable['legdecomlvl6'].customparams.isdecoycommander = true unitsTable['legdecomlvl6'].health = math.ceil(unitsTable['legdecomlvl6'].health*0.5) unitsTable['legdecomlvl6'].weapondefs.disintegrator.damage.default = 40 +unitsTable['legdecomlvl6'].weapondefs.botcannon.customparams.stockpilelimit = 2 unitsTable['legdecomlvl10'] = VFS.Include('units/Legion/Legion EvoCom/legcomlvl10.lua').legcomlvl10 --if this filepath is changed, the unit will no longer work! unitsTable['legdecomlvl10'].selfdestructas = "decoycommander" @@ -41,5 +43,6 @@ unitsTable['legdecomlvl10'].customparams.decoyfor = "legcomlvl10" unitsTable['legdecomlvl10'].customparams.isdecoycommander = true unitsTable['legdecomlvl10'].health = math.ceil(unitsTable['legdecomlvl10'].health*0.5) unitsTable['legdecomlvl10'].weapondefs.disintegrator.damage.default = 40 +unitsTable['legdecomlvl10'].weapondefs.botcannon.customparams.stockpilelimit = 3 -return unitsTable \ No newline at end of file +return unitsTable diff --git a/units/Legion/T3/legerailtank.lua b/units/Legion/T3/legerailtank.lua new file mode 100644 index 00000000000..604afb4185c --- /dev/null +++ b/units/Legion/T3/legerailtank.lua @@ -0,0 +1,238 @@ +return { + legerailtank = { + acceleration = 0.03, + brakerate = 0.05, + buildcostenergy = 180000, + buildcostmetal = 8000, + buildpic = "LEGERAILTANK.DDS", + buildtime = 140000, + --canattack = false, + canmove = true, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "54 34 100", + collisionvolumetype = "Box", + usepiececollisionvolumes = 1, + corpse = "DEAD", + explodeas = "explosiont3", + footprintx = 5, + footprintz = 5, + idleautoheal = 5, + idletime = 1800, + leavetracks = true, + maxdamage = 17000, + maxslope = 16, + speed = 60.0, + maxwaterdepth = 20, + movementclass = "HTANK5", + nochasecategory = "VTOL", + objectname = "Units/legerailtank.s3o", + script = "Units/legerailtank.cob", + seismicsignature = 0, + selfdestructas = "explosiont3xl", + name = "Daedalus", + sightdistance = 700, + trackoffset = 16, + trackstrength = 12, + tracktype = "armbull_tracks", + trackwidth = 70, + turninplace = true, + turninplaceanglelimit = 90, + turninplacespeedlimit = 1.7, + turnrate = 220, + customparams = { + unitgroup = "weapon", + normaltex = "unittextures/leg_normal.dds", + paralyzemultiplier = 0.5, + model_author = "ZephyrSkies", + techlevel = 3, + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "75 50 100", + collisionvolumetype = "Box", + damage = 10000, + featuredead = "HEAP", + footprintx = 5, + footprintz = 5, + height = 25, + metal = 3250, + object = "Units/legerailtank_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumeoffsets = "-1.01699066162 -0.66435255127 0.0775146484375", + collisionvolumescales = "23.8865509033 22.2328948975 29.3510131836", + collisionvolumetype = "Box", + damage = 4000, + footprintx = 5, + footprintz = 5, + height = 4, + metal = 1625, + object = "Units/cor4X4C.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + explosiongenerators = { + [1] = "custom:barrelshot-small", + [2] = "custom:barrelshot-tiny", + }, + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "tcormove", + }, + select = { + [1] = "tcorsel", + }, + }, + weapondefs = { + t3_rail_accelerator = { + areaofeffect = 200, + avoidfeature = false, + burst = 3, + burstrate = 0.33, + burnblow = true, + cegtag = "railgun", + collisionSize = 0.667, + craterareaofeffect = 0, + craterboost = 0, + cratermult = 0, + duration = 0.12, + edgeeffectiveness = 0.90, + energypershot = 1800, + explosiongenerator = "custom:plasmahit-sparkonly", + firestarter = 1, + hardstop = true, + impactonly = true, + impulsefactor = 1, + intensity = 0.8, + name = "Siege Rail Accelerator", + noexplode = true, + noselfdamage = true, + range = 901, + reloadtime = 3, + rgbcolor = "0.34 0.64 0.94", + soundhit = "mavgun3", + soundhitwet = "splshbig", + soundstart = "heavyrailgun", + soundstartvolume = 30, + thickness = 4, + firetolerance = 7000, + tolerance = 7000, + turret = true, + weapontype = "LaserCannon", + weaponvelocity = 3000, + damage = { + commanders = 300, + default = 800, + }, + customparams = { + overpenetrate = true, + }, + }, + machinegun = { + accuracy = 0.3, + areaofeffect = 16, + avoidfeature = false, + burst = 6, + burstrate = 0.0675, + burnblow = false, + craterareaofeffect = 0, + craterboost = 0, + cratermult = 0, + duration = 0.038, + edgeeffectiveness = 0.85, + explosiongenerator = "custom:plasmahit-sparkonly", + fallOffRate = 0.2, + firestarter = 0, + impulsefactor = 1.5, + intensity = 0.8, + name = "g2g Heavy Rotary Gun", + noselfdamage = true, + --ownerExpAccWeight = 1.0, + proximitypriority = 1, + range = 500, + reloadtime = 0.3, + rgbcolor = "1 0.95 0.4", + soundhit = "bimpact3", + soundhitwet = "splshbig", + soundstart = "minigun3", + soundstartvolume = 4.5, + sprayangle = 900, + thickness = 0.91, + tolerance = 6000, + turret = true, + weapontype = "LaserCannon", + weaponvelocity = 1000, + damage = { + default = 16, + vtol = 4, + }, + }, + }, + weapons = { + [1] = { + def = "T3_RAIL_ACCELERATOR", + onlytargetcategory = "SURFACE", + burstControlWhenOutOfArc = 2, + }, + [2] = { + def = "MACHINEGUN", + onlytargetcategory = "NOTSUB", + maindir = "0.65 0 1", + maxangledif = 235, + fastautoretargeting = true, + burstControlWhenOutOfArc = 2, + }, + [3] = { + def = "MACHINEGUN", + onlytargetcategory = "NOTSUB", + maindir = "1 0 0.3", + maxangledif = 200, + fastautoretargeting = true, + burstControlWhenOutOfArc = 2, + }, + [4] = { + def = "MACHINEGUN", + onlytargetcategory = "NOTSUB", + maindir = "-0.65 0 1", + maxangledif = 235, + fastautoretargeting = true, + burstControlWhenOutOfArc = 2, + }, + [5] = { + def = "MACHINEGUN", + onlytargetcategory = "NOTSUB", + maindir = "-1 0 0.3", + maxangledif = 200, + fastautoretargeting = true, + burstControlWhenOutOfArc = 2, + }, + }, + }, +} diff --git a/units/Legion/T3/legjav.lua b/units/Legion/T3/legjav.lua new file mode 100644 index 00000000000..2f70009415e --- /dev/null +++ b/units/Legion/T3/legjav.lua @@ -0,0 +1,209 @@ +return { + legjav = { + buildpic = "legjav.DDS", + buildtime = 32000, + canmove = true, + cantbetransported = true, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "56 72 56", + collisionvolumetype = "CYLY", + corpse = "DEAD", + energycost = 21000, + explodeas = "explosiont3med", + footprintx = 5, + footprintz = 5, + health = 7200, + idleautoheal = 16, + idletime = 1800, + mass = 1200, + maxacc = 0.1750, + maxdec = 0.7500, + maxslope = 17, + maxwaterdepth = 32, + metalcost = 1200, + movementclass = "HABOT4", + nochasecategory = "VTOL", + objectname = "Units/legjav.s3o", + script = "Units/legjav.cob", + seismicsignature = 0, + selfdestructas = "explosiont3", + sightdistance = 455, + speed = 62.0, + turninplace = true, + turninplaceanglelimit = 90, + turninplacespeedlimit = 1.98, + turnrate = 600, + upright = true, + customparams = { + maxrange = "450", + model_author = "Tharsis", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/T3", + techlevel = 3, + unitgroup = "weapon", + weapon1turretx = 90, + weapon1turrety = 150, + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "60 30 60", + collisionvolumetype = "Box", + damage = 2400, + featuredead = "HEAP", + footprintx = 5, + footprintz = 5, + height = 20, + metal = 860, + object = "Units/legjav_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "40 40 40", + collisionvolumetype = "Sphere", + damage = 1200, + footprintx = 3, + footprintz = 3, + height = 4, + metal = 280, + object = "Units/arm3X3F.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + explosiongenerators = { + [1] = "custom:barrelshot-tiny", + [2] = "custom:subbubbles", + [3] = "custom:footstep-medium", + }, + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "mavbok1", + }, + select = { + [1] = "mavbsel1", + }, + }, + weapondefs = { + mg_guns = { + accuracy = 7, + areaofeffect = 32, + avoidfeature = false, + burst = 12, + burstrate = 0.033, + burnblow = false, + craterareaofeffect = 0, + craterboost = 0, + cratermult = 0, + duration = 0.038, + edgeeffectiveness = 0.5, + explosiongenerator = "custom:plasmahit-sparkonly", + fallOffRate = 0.2, + firestarter = 0, + impulsefactor = 1.5, + intensity = 0.8, + name = "Vulcan Rapid-fire Rotary Guns", + noselfdamage = true, + ownerExpAccWeight = 4.0, + proximitypriority = 1, + range = 450, + reloadtime = 0.4, + rgbcolor = "1 0.95 0.4", + soundhit = "bimpact3", + soundhitwet = "splshbig", + soundstart = "minigun3", + soundstartvolume = 4.5, + sprayangle = 968, + targetmoveerror = 0, + thickness = 0.91, + tolerance = 16000, + turret = true, + weapontype = "LaserCannon", + weaponvelocity = 958, + damage = { + default = 12, + vtol = 8, + }, + }, + aa_gun = { + accuracy = 100, + areaofeffect = 16, + avoidfeature = false, + burst = 6, + burstrate = 0.075, + burnblow = false, + canattackground = false, + craterareaofeffect = 0, + craterboost = 0, + cratermult = 0, + duration = 0.03, + edgeeffectiveness = 0.85, + explosiongenerator = "custom:plasmahit-sparkonly", + fallOffRate = 0.2, + firestarter = 0, + firetolerance = 12000, + impulsefactor = 1.5, + intensity = 0.8, + name = "Light AA Rotary Gun", + noselfdamage = true, + ownerExpAccWeight = 4.0, + predictboost = 0.5, + proximitypriority = 1, + range = 700, + reloadtime = 0.4, + rgbcolor = "1 0.33 0.7", + soundhit = "bimpact3", + soundhitwet = "splshbig", + soundstart = "minigun3", + soundstartvolume = 3, + sprayangle = 900, + thickness = 0.6, + tolerance = 12000, + turret = true, + weapontype = "LaserCannon", + weaponvelocity = 950, + damage = { + default = 0, + vtol = 10, + }, + }, + }, + weapons = { + [1] = { + badtargetcategory = "VTOL", + burstcontrolwhenoutofarc = 2, + def = "mg_guns", + fastautoretargeting = true, + onlytargetcategory = "SURFACE", + }, + [2] = { + def = "aa_gun", + onlytargetcategory = "VTOL", + }, + }, + }, +} diff --git a/units/Legion/Vehicles/T2 Vehicles/legaskirmtank.lua b/units/Legion/Vehicles/T2 Vehicles/legaskirmtank.lua index 99ad014736a..1276406a58b 100644 --- a/units/Legion/Vehicles/T2 Vehicles/legaskirmtank.lua +++ b/units/Legion/Vehicles/T2 Vehicles/legaskirmtank.lua @@ -112,7 +112,7 @@ return { }, weapondefs = { legmgplasma = { - burstrate = 0.15, + burstrate = 0.2, burst = 3, sprayangle = 600, --accuracy = 100, @@ -133,7 +133,7 @@ return { name = "Heavy Rotary Plasma Cannon", noselfdamage = true, range = 600, - reloadtime = 1.9, + reloadtime = 2, size = 2, soundhit = "xplosml3", soundhitwet = "splshbig", @@ -142,7 +142,7 @@ return { weapontype = "Cannon", weaponvelocity = 320, damage = { - default = 60, + default = 70, vtol = 20, }, }, diff --git a/units/Legion/Vehicles/T2 Vehicles/legavjam.lua b/units/Legion/Vehicles/T2 Vehicles/legavjam.lua new file mode 100644 index 00000000000..32569bef865 --- /dev/null +++ b/units/Legion/Vehicles/T2 Vehicles/legavjam.lua @@ -0,0 +1,114 @@ +return { + legavjam = { + activatewhenbuilt = true, + buildpic = "LEGAVJAM.DDS", + buildtime = 5930, + canattack = false, + canmove = true, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "35 28 33", + collisionvolumetype = "Box", + corpse = "dead", + energycost = 1900, + energyupkeep = 80, + explodeas = "smallexplosiongeneric", + footprintx = 3, + footprintz = 3, + health = 510, + idleautoheal = 5, + idletime = 1800, + leavetracks = false, + maxacc = 0.02416, + maxdec = 0.04831, + maxslope = 16, + maxwaterdepth = 0, + metalcost = 105, + movementclass = "TANK3", + movestate = 0, + nochasecategory = "MOBILE", + objectname = "Units/LEGAVJAM.s3o", + onoffable = true, + radardistance = 0, + radardistancejam = 450, + script = "Units/LEGAVJAM.cob", + seismicsignature = 0, + selfdestructas = "smallExplosionGenericSelfd", + sightdistance = 300, + speed = 41, + trackoffset = 8, + trackstrength = 10, + tracktype = "StdTank", + trackwidth = 22, + turninplace = true, + turninplaceanglelimit = 90, + turninplacespeedlimit = 0.792, + turnrate = 505, + customparams = { + model_author = "ZephyrSkies", + normaltex = "unittextures/leg_normal.dds", + off_on_stun = "true", + subfolder = "Legion/Vehicles/T2 Vehicles", + techlevel = 2, + unitgroup = "util", + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "23 28 33", + collisionvolumetype = "Box", + damage = 400, + featuredead = "HEAP", + footprintx = 3, + footprintz = 3, + height = 20, + metal = 78, + object = "Units/legavjam_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "55.0 4.0 6.0", + collisionvolumetype = "cylY", + damage = 368, + footprintx = 3, + footprintz = 3, + height = 4, + metal = 39, + object = "Units/arm3X3B.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "varmmove", + }, + select = { + [1] = "radjam1", + }, + }, + }, +} diff --git a/units/Legion/Vehicles/T2 Vehicles/legavrad.lua b/units/Legion/Vehicles/T2 Vehicles/legavrad.lua new file mode 100644 index 00000000000..70a0fb74348 --- /dev/null +++ b/units/Legion/Vehicles/T2 Vehicles/legavrad.lua @@ -0,0 +1,113 @@ +return { + legavrad = { + activatewhenbuilt = true, + buildpic = "LEGAVRAD.DDS", + buildtime = 6200, + canattack = false, + canmove = true, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "35 36 33", + collisionvolumetype = "Box", + corpse = "DEAD", + energycost = 2000, + explodeas = "smallexplosiongeneric", + footprintx = 3, + footprintz = 3, + health = 980, + idleautoheal = 5, + idletime = 1800, + leavetracks = true, + maxacc = 0.04878, + maxdec = 0.09757, + maxslope = 16, + maxwaterdepth = 0, + metalcost = 125, + movementclass = "TANK3", + movestate = 0, + objectname = "Units/LEGAVRAD.s3o", + onoffable = false, + radardistance = 2300, + script = "Units/LEGAVRAD.cob", + seismicsignature = 0, + selfdestructas = "smallExplosionGenericSelfd", + sightdistance = 900, + speed = 57, + trackoffset = 5, + trackstrength = 5, + tracktype = "armseer_tracks", + trackwidth = 24, + turninplace = true, + turninplaceanglelimit = 90, + turninplacespeedlimit = 1.33584, + turnrate = 605, + customparams = { + model_author = "ZephyrSkies", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Vehicles/T2 Vehicles", + techlevel = 2, + unitgroup = "util", + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 -4 0", + collisionvolumescales = "28 30 34", + collisionvolumetype = "Box", + damage = 700, + featuredead = "HEAP", + footprintx = 3, + footprintz = 3, + height = 20, + metal = 80, + object = "Units/legavrad_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "55.0 4.0 6.0", + collisionvolumetype = "cylY", + damage = 500, + footprintx = 3, + footprintz = 3, + height = 4, + metal = 48, + object = "Units/arm3X3E.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + explosiongenerators = { + [1] = "custom:radarpulse_t2", + }, + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "varmmove", + }, + select = { + [1] = "avradsel", + }, + }, + }, +} diff --git a/units/Legion/Vehicles/T2 Vehicles/legfloat.lua b/units/Legion/Vehicles/T2 Vehicles/legfloat.lua index 7c58f3a472a..9fbee9a3730 100644 --- a/units/Legion/Vehicles/T2 Vehicles/legfloat.lua +++ b/units/Legion/Vehicles/T2 Vehicles/legfloat.lua @@ -31,7 +31,7 @@ return { script = "Units/LEGFLOAT.cob", seismicsignature = 0, selfdestructas = "mediumExplosionGenericSelfd", - sightdistance = 400, + sightdistance = 500, trackoffset = 6, trackstrength = 5, tracktype = "armacv_tracks", diff --git a/units/Legion/Vehicles/T2 Vehicles/legmrv.lua b/units/Legion/Vehicles/T2 Vehicles/legmrv.lua index 5859c7a22d8..6d1446d6410 100644 --- a/units/Legion/Vehicles/T2 Vehicles/legmrv.lua +++ b/units/Legion/Vehicles/T2 Vehicles/legmrv.lua @@ -2,10 +2,10 @@ return { legmrv = { maxacc = 0.09, maxdec = 0.14, - energycost = 4400, - metalcost = 270, + energycost = 4100, + metalcost = 250, buildpic = "LEGMRV.DDS", - buildtime = 4900, + buildtime = 4500, canmove = true, collisionvolumeoffsets = "0 -6 0", collisionvolumescales = "34 26 38", diff --git a/units/Legion/Vehicles/T2 Vehicles/legvflak.lua b/units/Legion/Vehicles/T2 Vehicles/legvflak.lua new file mode 100644 index 00000000000..24b6c11c0c2 --- /dev/null +++ b/units/Legion/Vehicles/T2 Vehicles/legvflak.lua @@ -0,0 +1,171 @@ +return { + legvflak = { + airsightdistance = 900, + buildpic = "legvflak.DDS", + buildtime = 12000, + canmove = true, + collisionvolumeoffsets = "0 -2 0", + collisionvolumescales = "32 22 50", + collisionvolumetype = "BOX", + corpse = "DEAD", + energycost = 10500, + explodeas = "mediumExplosionGeneric", + footprintx = 3, + footprintz = 3, + health = 2700, + idleautoheal = 5, + idletime = 1800, + leavetracks = true, + maxacc = 0.05823, + maxdec = 0.11647, + maxslope = 14, + maxwaterdepth = 12, + metalcost = 470, + movementclass = "TANK3", + movestate = 0, + nochasecategory = "NOTAIR", + objectname = "Units/legvflak.s3o", + script = "Units/legvflak.cob", + seismicsignature = 0, + selfdestructas = "mediumExplosionGenericSelfd", + sightdistance = 338, + speed = 70, + trackoffset = -5, + trackstrength = 5, + tracktype = "armcroc_tracks", + trackwidth = 41, + turninplace = true, + turninplaceanglelimit = 90, + turninplacespeedlimit = 1.6335, + turnrate = 591.79999, + customparams = { + model_author = "Tharsis", + normaltex = "unittextures/leg_normal.dds", + subfolder = "Legion/Vehicles/T2 Vehicles", + techlevel = 2, + unitgroup = "aa", + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0.2 -7 1.5", + collisionvolumescales = "32.4 21.8 34.3", + collisionvolumetype = "Box", + damage = 2000, + featuredead = "HEAP", + footprintx = 2, + footprintz = 2, + height = 20, + metal = 288, + object = "Units/legvflak_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "35.0 4.0 6.0", + collisionvolumetype = "cylY", + damage = 1500, + footprintx = 2, + footprintz = 2, + height = 4, + metal = 115, + object = "Units/cor2X2A.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + explosiongenerators = { + [1] = "custom:barrelshot-flak", + }, + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "tcormove", + }, + select = { + [1] = "tcorsel", + }, + }, + weapondefs = { + legflak_gun = { + accuracy = 100, + areaofeffect = 42, + avoidfeature = false, + avoidfriendly = false, + burst = 3, + burstrate = 0.02, + burnblow = true, + canattackground = false, + collidefriendly = false, + craterareaofeffect = 192, + craterboost = 0, + cratermult = 0, + cylindertargeting = 1, + duration = 0.1, + edgeeffectiveness = 1, + gravityaffected = "true", + impulsefactor = 0, + mygravity = 0.01, + name = "Heavy Anti-Air Gatling Gun", + noselfdamage = true, + predictboost = 1, + range = 800, + reloadtime = 0.166, + smoketrail = false, + soundhit = "bimpact3", + soundhitwet = "splshbig", + soundstart = "minigun3", + soundhitvolume = 7.5, + soundstartvolume = 5, + stages = 0, + texture1 = "shot", + texture2 = "empty", + thickness = 2.5, + tolerance = 16000, + turret = true, + weapontimer = 1, + weapontype = "LaserCannon", + weaponvelocity = 3642, + damage = { + default = 1, + vtol = 26, + }, + rgbcolor = "1 0.33 0.7", + explosiongenerator = "custom:plasmahit-sparkonly", + fallOffRate = 0.2, + ownerExpAccWeight = 1.35,--does this affect sprayangle too? + sprayangle = 600, + }, + }, + weapons = { + [1] = { + badtargetcategory = "NOTAIR LIGHTAIRSCOUT", + burstcontrolwhenoutofarc = 2, + def = "legflak_gun", + fastautoretargeting = true, + onlytargetcategory = "VTOL", + }, + }, + }, +} diff --git a/units/Legion/Vehicles/leghelios.lua b/units/Legion/Vehicles/leghelios.lua index c768bccb36c..ee9019c25f6 100644 --- a/units/Legion/Vehicles/leghelios.lua +++ b/units/Legion/Vehicles/leghelios.lua @@ -138,6 +138,7 @@ return { impactonly = 1, impulsefactor = 0, laserflaresize = 5, + leadlimit = 0, name = "Light g2g Heat Ray", noselfdamage = true, range = 340, @@ -150,7 +151,7 @@ return { soundhitwet = "sizzle", soundstart = "heliosfire", soundtrigger = 1, - targetmoveerror = 0.2, + --targetmoveerror = 0.2, thickness = 2.0, tolerance = 10000, turret = true, diff --git a/units/Legion/legcom.lua b/units/Legion/legcom.lua index 67b63e7eb54..7f1c6e88370 100644 --- a/units/Legion/legcom.lua +++ b/units/Legion/legcom.lua @@ -181,24 +181,25 @@ return { legcomlaser = { areaofeffect = 12, avoidfeature = false, - beamtime = 0.1, - corethickness = 0.1, + beamtime = 0.4, + corethickness = 0.4, craterareaofeffect = 0, craterboost = 0, cratermult = 0, cylindertargeting = 1, edgeeffectiveness = 1, - explosiongenerator = "custom:laserhit-small-yellow", + explosiongenerator = "custom:laserhit-medium", firestarter = 70, impactonly = 1, impulsefactor = 0, - laserflaresize = 7.7, + laserflaresize = 7, + leadlimit = 0, name = "Close-Quarters Heatray", noselfdamage = true, range = 300, - reloadtime = 0.37, - rgbcolor = "1 0.8 0", - rgbcolor2 = "0.8 0 0", + reloadtime = 0.8, + rgbcolor = "1 0.55 0", + rgbcolor2 = "0.9 1.0 0.5", soundhitdry = "", soundhitwet = "sizzle", soundstart = "heatray1", @@ -210,8 +211,8 @@ return { weapontype = "BeamLaser", weaponvelocity = 900, damage = { - default = 75, - subs = 5, + default = 175, + subs = 25, }, }, torpedo = { diff --git a/units/Scavengers/Air/legmost3.lua b/units/Scavengers/Air/legmost3.lua index ec071d91141..80ed4a40aa3 100644 --- a/units/Scavengers/Air/legmost3.lua +++ b/units/Scavengers/Air/legmost3.lua @@ -3,10 +3,10 @@ return { maxacc = 0.15, blocking = false, maxdec = 0.375, - energycost = 48000, - metalcost = 3500, + energycost = 42000, + metalcost = 3000, buildpic = "LEGMOS.DDS", - buildtime = 48000, + buildtime = 42000, canfly = true, canmove = true, collide = true, @@ -120,6 +120,9 @@ return { weapontype = "MissileLauncher", weaponvelocity = 700, --wobble = 3000, + customparams = { + stockpilelimit = 8, + }, damage = { default = 200, }, diff --git a/units/Scavengers/Boss/scavengerbossv4.lua b/units/Scavengers/Boss/scavengerbossv4.lua index 07ccdeec334..d938f8a27e7 100644 --- a/units/Scavengers/Boss/scavengerbossv4.lua +++ b/units/Scavengers/Boss/scavengerbossv4.lua @@ -117,7 +117,6 @@ for difficulty, stats in pairs(difficultyParams) do paralyzemultiplier = 0.025, subfolder = "", i18nfromunit = 'scavengerbossv4', - stockpileLimit = 1, }, featuredefs = { dead = { @@ -738,6 +737,7 @@ for difficulty, stats in pairs(difficultyParams) do spawns_name = "squadarmsptkt4 squadcorkarganetht4 squadcorakt4 squadcorakt4 squadcorakt4 squadcorakt4 squadcorakt4 squadarmpwt4 squadarmpwt4 squadarmpwt4 squadarmpwt4 squadarmpwt4", spawns_surface = "LAND", spawns_mode = "random", + stockpilelimit = 1, }, damage = { default = 0, @@ -872,7 +872,7 @@ for difficulty, stats in pairs(difficultyParams) do name = "TurboWeaponGapDelay", noselfdamage = true, projectiles = math.floor((10/stats.turboWeaponOnTime*100) + 0.5), -- after delay, when 200-300 additional projectiles are fired, the turbo weapon is disabled. - range = 99999, + range = 99999, reloadtime = 1/stats.turboWeaponOffTime*100, --when 10+(health%/4) shots are fired, select a turbo weapon and enable it. rgbcolor = "0.7 0.3 1.0", rgbcolor2 = "0.8 0.6 1.0", diff --git a/units/Scavengers/Bots/leggobt3.lua b/units/Scavengers/Bots/leggobt3.lua index a5be11c2889..97eb0e2c8af 100644 --- a/units/Scavengers/Bots/leggobt3.lua +++ b/units/Scavengers/Bots/leggobt3.lua @@ -2,10 +2,10 @@ return { leggobt3 = { maxacc = 0.18, maxdec = 0.36, - energycost = 130000, - metalcost = 6500, + energycost = 120000, + metalcost = 6000, buildpic = "LEGGOB.DDS", - buildtime = 130000, + buildtime = 120000, canmove = true, collisionvolumeoffsets = "0 -7 0", collisionvolumescales = "63 77 63", @@ -18,7 +18,7 @@ return { idletime = 1800, health = 14000, maxslope = 17, - speed = 57.0, + speed = 60.0, maxwaterdepth = 25, movementclass = "HBOT4", nochasecategory = "VTOL", @@ -122,14 +122,14 @@ return { noselfdamage = true, ownerExpAccWeight = 4.0, proximitypriority = 1, - range = 750, + range = 800, reloadtime = 2, rgbcolor = "1 0.95 0.4", soundhit = "bimpact3", soundhitwet = "splshbig", soundstart = "kroggie2xs", soundstartvolume = 3, - sprayangle = 1000, + sprayangle = 900, thickness = 0.6, tolerance = 6000, turret = true, diff --git a/units/Scavengers/Bots/legsrailt4.lua b/units/Scavengers/Bots/legsrailt4.lua index eec9832fe1d..b33228954f1 100644 --- a/units/Scavengers/Bots/legsrailt4.lua +++ b/units/Scavengers/Bots/legsrailt4.lua @@ -11,12 +11,12 @@ return { collisionvolumescales = "99 88 99", collisionvolumetype = "CylY", corpse = "DEAD", - explodeas = "largeexplosiongeneric", + explodeas = "explosiont3", footprintx = 5, footprintz = 5, idleautoheal = 5, idletime = 1800, - health = 50000, + health = 40000, maxslope = 17, speed = 21.0, maxwaterdepth = 0, @@ -27,7 +27,7 @@ return { script = "Units/scavboss/LEGSRAILT4.cob", seismicsignature = 0, usepiececollisionvolumes = 0, - selfdestructas = "largeExplosionGenericSelfd", + selfdestructas = "explosiont3xl", sightdistance = 1200, turninplace = true, turninplaceanglelimit = 90, @@ -106,24 +106,27 @@ return { railgunt2 = { areaofeffect = 16, avoidfeature = false, - burnblow = false, + burnblow = true, cegtag = "ministarfire", craterareaofeffect = 0, craterboost = 0, cratermult = 0, duration = 0.02, edgeeffectiveness = 0.85, - energypershot = 4000, + energypershot = 3000, explosiongenerator = "custom:starfire-explosion", fallOffRate = 0.2, firestarter = 0, + hardstop = true, + impactonly = true, impulsefactor = 1, intensity = 0.8, name = "Railgun", + noexplode = true, noselfdamage = true, ownerExpAccWeight = 4.0, proximitypriority = 1, - range = 1400, + range = 1600, reloadtime = 4, rgbcolor = "0.74 0.64 0.94", soundhit = "mavgun3", @@ -137,6 +140,10 @@ return { turret = true, weapontype = "LaserCannon", weaponvelocity = 3180, + customparams = { + overpenetrate = true, + stockpilelimit = 3, + }, damage = { commanders = 1000, default = 6000, diff --git a/units/Scavengers/Buildings/DefenseOffense/armbotrail.lua b/units/Scavengers/Buildings/DefenseOffense/armbotrail.lua index 43acd0f5af4..0d51e42dc3b 100644 --- a/units/Scavengers/Buildings/DefenseOffense/armbotrail.lua +++ b/units/Scavengers/Buildings/DefenseOffense/armbotrail.lua @@ -151,6 +151,7 @@ return { customparams = { spawns_name = "armpw", spawns_surface = "LAND", -- Available: "LAND SEA" blah + stockpilelimit = 50, }, damage = { default = 10, diff --git a/units/Scavengers/Buildings/DefenseOffense/legrwall.lua b/units/Scavengers/Buildings/DefenseOffense/legrwall.lua index 6ec9b45d003..bf250f04fe1 100644 --- a/units/Scavengers/Buildings/DefenseOffense/legrwall.lua +++ b/units/Scavengers/Buildings/DefenseOffense/legrwall.lua @@ -130,10 +130,13 @@ return { explosiongenerator = "custom:plasmahit-sparkonly", fallOffRate = 0.2, firestarter = 0, + hardstop = true, + impactonly = true, impulseboost = 0.4, impulsefactor = 1, intensity = 0.8, name = "Compact Railgun", + noexplode = true, noselfdamage = true, ownerExpAccWeight = 4.0, proximitypriority = 1, @@ -149,6 +152,9 @@ return { turret = true, weapontype = "LaserCannon", weaponvelocity = 3000, + customparams = { + overpenetrate = true, + }, damage = { commanders = 250, default = 1000, diff --git a/units/Scavengers/Buildings/Utility/armgatet3.lua b/units/Scavengers/Buildings/Utility/armgatet3.lua new file mode 100644 index 00000000000..169aade29fa --- /dev/null +++ b/units/Scavengers/Buildings/Utility/armgatet3.lua @@ -0,0 +1,161 @@ +return { + armgatet3 = { + activatewhenbuilt = true, + buildangle = 2048, + buildpic = "ARMGATET3.DDS", + buildtime = 220000, + canattack = false, + canrepeat = false, + category = "NOWEAPON", + collisionvolumeoffsets = "0 0 3", + collisionvolumescales = "91 85 91", + collisionvolumetype = "CylY", + corpse = "DEAD", + energycost = 216000, + energystorage = 4000, + exemptcategory = "WEAPON", + explodeas = "fusionExplosion", + footprintx = 5, + footprintz = 6, + health = 10250, + idleautoheal = 5, + idletime = 1800, + maxacc = 0, + maxdec = 0, + maxslope = 10, + maxwaterdepth = 0, + metalcost = 12000, + noautofire = true, + objectname = "Units/ARMGATET3.s3o", + onoffable = false, + script = "Units/ARMGATET3.cob", + seismicsignature = 0, + selfdestructas = "fusionExplosionSelfd", + sightdistance = 350, + customparams = { + buildinggrounddecaldecayspeed = 30, + buildinggrounddecalsizex = 9, + buildinggrounddecalsizey = 9, + buildinggrounddecaltype = "decals/armgate_aoplane.dds", + model_author = "Beherith/Protar", + normaltex = "unittextures/Arm_normal.dds", + removestop = true, + removewait = true, + shield_color_mult = 25, + shield_power = 13000, + shield_radius = 710, + subfolder = "ArmBuildings/LandUtil", + techlevel = 3, + unitgroup = "util", + usebuildinggrounddecal = true, + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 0 3", + collisionvolumescales = "91 67 91", + collisionvolumetype = "CylY", + damage = 7500, + featuredead = "HEAP", + footprintx = 5, + footprintz = 6, + height = 20, + metal = 7500, + object = "Units/armgatet3_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "35.0 4.0 6.0", + collisionvolumetype = "cylY", + damage = 3750, + footprintx = 4, + footprintz = 4, + height = 4, + metal = 3200, + object = "Units/arm4X4A.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "drone1", + }, + select = { + [1] = "drone1", + }, + }, + weapondefs = { + repulsor = { + avoidfeature = false, + craterareaofeffect = 0, + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.15, + name = "PlasmaRepulsor", + range = 710, + soundhitwet = "sizzle", + weapontype = "Shield", + damage = { + default = 100, + }, + shield = { + alpha = 0.17, + armortype = "shields", + energyupkeep = 0, + force = 2.5, + intercepttype = 999, + power = 26000, + powerregen = 208, + powerregenenergy = 1968, + radius = 710, + repulser = true, + smart = true, + startingpower = 8125, + visiblerepulse = true, + badcolor = { + [1] = 1, + [2] = 0.2, + [3] = 0.2, + [4] = 0.2, + }, + goodcolor = { + [1] = 0.2, + [2] = 1, + [3] = 0.2, + [4] = 0.17, + }, + }, + }, + }, + weapons = { + [1] = { + def = "REPULSOR", + onlytargetcategory = "NOTSUB", + }, + }, + }, +} diff --git a/units/Scavengers/Buildings/Utility/corgatet3.lua b/units/Scavengers/Buildings/Utility/corgatet3.lua new file mode 100644 index 00000000000..08565b743d9 --- /dev/null +++ b/units/Scavengers/Buildings/Utility/corgatet3.lua @@ -0,0 +1,161 @@ +return { + corgatet3 = { + activatewhenbuilt = true, + buildangle = 4096, + buildpic = "CORGATET3.DDS", + buildtime = 275000, + canattack = false, + canrepeat = false, + category = "NOWEAPON", + collisionvolumeoffsets = "0 -4 0", + collisionvolumescales = "96 143 96", + collisionvolumetype = "CylY", + corpse = "DEAD", + energycost = 275000, + energystorage = 5000, + exemptcategory = "WEAPON", + explodeas = "advancedFusionExplosion", + footprintx = 6, + footprintz = 6, + health = 12500, + idleautoheal = 5, + idletime = 1800, + maxacc = 0, + maxdec = 0, + maxslope = 10, + maxwaterdepth = 0, + metalcost = 16000, + noautofire = true, + objectname = "Units/CORGATET3.s3o", + onoffable = false, + script = "Units/CORGATET3.cob", + seismicsignature = 0, + selfdestructas = "advancedFusionExplosionSelfd", + sightdistance = 350, + customparams = { + buildinggrounddecaldecayspeed = 30, + buildinggrounddecalsizex = 9, + buildinggrounddecalsizey = 9, + buildinggrounddecaltype = "decals/corgate_aoplane.dds", + model_author = "Mr Bob/Protar", + normaltex = "unittextures/cor_normal.dds", + removestop = true, + removewait = true, + shield_color_mult = 25, + shield_power = 35000, + shield_radius = 825, + subfolder = "CorBuildings/LandUtil", + techlevel = 3, + unitgroup = "util", + usebuildinggrounddecal = true, + }, + featuredefs = { + dead = { + blocking = true, + category = "corpses", + collisionvolumeoffsets = "0 -4 0", + collisionvolumescales = "96 115 96", + collisionvolumetype = "CylY", + damage = 8500, + featuredead = "HEAP", + footprintx = 6, + footprintz = 6, + height = 20, + metal = 10000, + object = "Units/corgatet3_dead.s3o", + reclaimable = true, + }, + heap = { + blocking = false, + category = "heaps", + collisionvolumescales = "35.0 4.0 6.0", + collisionvolumetype = "cylY", + damage = 4250, + footprintx = 5, + footprintz = 5, + height = 4, + metal = 4000, + object = "Units/cor5X5D.s3o", + reclaimable = true, + resurrectable = 0, + }, + }, + sfxtypes = { + pieceexplosiongenerators = { + [1] = "deathceg2", + [2] = "deathceg3", + [3] = "deathceg4", + }, + }, + sounds = { + canceldestruct = "cancel2", + underattack = "warning1", + cant = { + [1] = "cantdo4", + }, + count = { + [1] = "count6", + [2] = "count5", + [3] = "count4", + [4] = "count3", + [5] = "count2", + [6] = "count1", + }, + ok = { + [1] = "drone1", + }, + select = { + [1] = "drone1", + }, + }, + weapondefs = { + repulsor = { + avoidfeature = false, + craterareaofeffect = 0, + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.15, + name = "PlasmaRepulsor", + range = 825, + soundhitwet = "sizzle", + weapontype = "Shield", + damage = { + default = 100, + }, + shield = { + alpha = 0.17, + armortype = "shields", + energyupkeep = 0, + force = 2.5, + intercepttype = 951, + power = 35000, + powerregen = 260, + powerregenenergy = 2812.5, + radius = 825, + repulser = true, + smart = true, + startingpower = 11000, + visiblerepulse = true, + badcolor = { + [1] = 1, + [2] = 0.2, + [3] = 0.2, + [4] = 0.2, + }, + goodcolor = { + [1] = 0.2, + [2] = 1, + [3] = 0.2, + [4] = 0.17, + }, + }, + }, + }, + weapons = { + [1] = { + def = "REPULSOR", + onlytargetcategory = "NOTSUB", + }, + }, + }, +} diff --git a/units/legassistdrone_land.lua b/units/legassistdrone_land.lua index 2516f1a7728..85e071ac8af 100644 --- a/units/legassistdrone_land.lua +++ b/units/legassistdrone_land.lua @@ -65,8 +65,8 @@ return { "corfrt", "corfrad", -- Experimental: - "corhp", - "corfhp", + "leghp", + "legfhp", }, customparams = { unitgroup = 'builder', diff --git a/units/other/evocom/armcomlvl10.lua b/units/other/evocom/armcomlvl10.lua index 13c60b433d9..b1499103e30 100644 --- a/units/other/evocom/armcomlvl10.lua +++ b/units/other/evocom/armcomlvl10.lua @@ -254,6 +254,9 @@ return { weapontimer = 1.9, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 5, + }, damage = { default = 4400, }, diff --git a/units/other/evocom/armcomlvl3.lua b/units/other/evocom/armcomlvl3.lua index 4bc5ea944f9..67c52fb7b4e 100644 --- a/units/other/evocom/armcomlvl3.lua +++ b/units/other/evocom/armcomlvl3.lua @@ -260,6 +260,9 @@ return { weapontimer = 0.87, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 3, + }, damage = { default = 550, }, diff --git a/units/other/evocom/armcomlvl4.lua b/units/other/evocom/armcomlvl4.lua index ed7fac22a2c..2765884ce08 100644 --- a/units/other/evocom/armcomlvl4.lua +++ b/units/other/evocom/armcomlvl4.lua @@ -260,6 +260,9 @@ return { weapontimer = 1.1, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 3, + }, damage = { default = 800, }, diff --git a/units/other/evocom/armcomlvl5.lua b/units/other/evocom/armcomlvl5.lua index 6c95faa1c40..963e9be1bad 100644 --- a/units/other/evocom/armcomlvl5.lua +++ b/units/other/evocom/armcomlvl5.lua @@ -260,6 +260,9 @@ return { weapontimer = 1.24, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 4, + }, damage = { default = 1200, }, diff --git a/units/other/evocom/armcomlvl6.lua b/units/other/evocom/armcomlvl6.lua index b600808315c..d89a4cc2523 100644 --- a/units/other/evocom/armcomlvl6.lua +++ b/units/other/evocom/armcomlvl6.lua @@ -260,6 +260,9 @@ return { weapontimer = 1.46, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 4, + }, damage = { default = 1350, }, diff --git a/units/other/evocom/armcomlvl7.lua b/units/other/evocom/armcomlvl7.lua index a96907624df..81ab87df470 100644 --- a/units/other/evocom/armcomlvl7.lua +++ b/units/other/evocom/armcomlvl7.lua @@ -261,6 +261,9 @@ return { weapontimer = 1.46, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 4, + }, damage = { default = 1800, }, diff --git a/units/other/evocom/armcomlvl8.lua b/units/other/evocom/armcomlvl8.lua index 0af49e27ea1..f916a4bd0e3 100644 --- a/units/other/evocom/armcomlvl8.lua +++ b/units/other/evocom/armcomlvl8.lua @@ -263,6 +263,9 @@ return { weapontimer = 1.6, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 5, + }, damage = { default = 2300, }, diff --git a/units/other/evocom/armcomlvl9.lua b/units/other/evocom/armcomlvl9.lua index 18f40a1e540..2318ff07b71 100644 --- a/units/other/evocom/armcomlvl9.lua +++ b/units/other/evocom/armcomlvl9.lua @@ -263,6 +263,9 @@ return { weapontimer = 1.74, weapontype = "StarburstLauncher", weaponvelocity = 1000, + customparams = { + stockpilelimit = 5, + }, damage = { default = 3600, }, diff --git a/units/other/evocom/armcorevodecom.lua b/units/other/evocom/armcorevodecom.lua index 5b2d48ff17b..b16ba68c82e 100644 --- a/units/other/evocom/armcorevodecom.lua +++ b/units/other/evocom/armcorevodecom.lua @@ -13,6 +13,7 @@ unitsTable['armdecomlvl3'].customparams.decoyfor = "armcomlvl3" unitsTable['armdecomlvl3'].customparams.isdecoycommander = true unitsTable['armdecomlvl3'].health = math.ceil(unitsTable['armdecomlvl3'].health*0.5) unitsTable['armdecomlvl3'].weapondefs.disintegrator.damage.default = 40 +unitsTable['armdecomlvl3'].weapondefs.backlauncher.customparams.stockpilelimit = 1 unitsTable['armdecomlvl6'] = VFS.Include('units/other/evocom/armcomlvl6.lua').armcomlvl6 --if this filepath is changed, the unit will no longer work! unitsTable['armdecomlvl6'].selfdestructas = "decoycommander" @@ -27,6 +28,7 @@ unitsTable['armdecomlvl6'].customparams.decoyfor = "armcomlvl6" unitsTable['armdecomlvl6'].customparams.isdecoycommander = true unitsTable['armdecomlvl6'].health = math.ceil(unitsTable['armdecomlvl6'].health*0.5) unitsTable['armdecomlvl6'].weapondefs.disintegrator.damage.default = 40 +unitsTable['armdecomlvl6'].weapondefs.backlauncher.customparams.stockpilelimit = 2 unitsTable['armdecomlvl10'] = VFS.Include('units/other/evocom/armcomlvl10.lua').armcomlvl10 --if this filepath is changed, the unit will no longer work! unitsTable['armdecomlvl10'].selfdestructas = "decoycommander" @@ -41,6 +43,7 @@ unitsTable['armdecomlvl10'].customparams.decoyfor = "armcomlvl10" unitsTable['armdecomlvl10'].customparams.isdecoycommander = true unitsTable['armdecomlvl10'].health = math.ceil(unitsTable['armdecomlvl10'].health*0.5) unitsTable['armdecomlvl10'].weapondefs.disintegrator.damage.default = 40 +unitsTable['armdecomlvl10'].weapondefs.backlauncher.customparams.stockpilelimit = 2 unitsTable['cordecomlvl3'] = VFS.Include('units/other/evocom/corcomlvl3.lua').corcomlvl3 --if this filepath is changed, the unit will no longer work! unitsTable['cordecomlvl3'].selfdestructas = "decoycommander" @@ -87,4 +90,4 @@ unitsTable['cordecomlvl10'].health = math.ceil(unitsTable['cordecomlvl10'].healt unitsTable['cordecomlvl10'].weapondefs.disintegrator.damage.default = 40 unitsTable['cordecomlvl10'].weapondefs.repulsor.shield.power = unitsTable['cordecomlvl10'].weapondefs.repulsor.shield.power*0.25 -return unitsTable \ No newline at end of file +return unitsTable diff --git a/units/other/raptors/Structures/raptor_turret_antinuke_t2_v1.lua b/units/other/raptors/Structures/raptor_turret_antinuke_t2_v1.lua index ef1a7dfa943..3befab5db99 100644 --- a/units/other/raptors/Structures/raptor_turret_antinuke_t2_v1.lua +++ b/units/other/raptors/Structures/raptor_turret_antinuke_t2_v1.lua @@ -120,6 +120,9 @@ return { weapontype = "MissileLauncher", weaponvelocity = 2000, wobble = 32000, + customparams = { + stockpilelimit = 5, + }, damage = { default = 1500, }, diff --git a/units/other/raptors/Structures/raptor_turret_antinuke_t3_v1.lua b/units/other/raptors/Structures/raptor_turret_antinuke_t3_v1.lua index b6c98ef5909..38b0e25bb66 100644 --- a/units/other/raptors/Structures/raptor_turret_antinuke_t3_v1.lua +++ b/units/other/raptors/Structures/raptor_turret_antinuke_t3_v1.lua @@ -119,6 +119,9 @@ return { weapontype = "MissileLauncher", weaponvelocity = 2000, wobble = 32000, + customparams = { + stockpilelimit = 10, + }, damage = { default = 1500, }, diff --git a/units/other/raptors/Structures/raptor_turret_meteor_t4_v1.lua b/units/other/raptors/Structures/raptor_turret_meteor_t4_v1.lua index 09515dac0fa..ed67927f005 100644 --- a/units/other/raptors/Structures/raptor_turret_meteor_t4_v1.lua +++ b/units/other/raptors/Structures/raptor_turret_meteor_t4_v1.lua @@ -83,6 +83,7 @@ return { explosiongenerator = "custom:newnukecor", firestarter = 70, hightrajectory = 1, + interceptedbyshieldtype = 0, model = "Raptors/greyrock2.s3o", name = "METEORLAUNCHER", proximitypriority = -1, @@ -98,6 +99,9 @@ return { damage = { default = 30000, }, + customparams = { + shield_aoe_penetration = true, + } }, }, weapons = { diff --git a/unittextures/decals/armestor_aoplane.dds b/unittextures/decals/armestor_aoplane.dds index 0e1e58443fe..0f5db09dbeb 100644 Binary files a/unittextures/decals/armestor_aoplane.dds and b/unittextures/decals/armestor_aoplane.dds differ diff --git a/unittextures/decals/armfus_aoplane.dds b/unittextures/decals/armfus_aoplane.dds index ddaab6b98c8..2bc0015ce48 100644 Binary files a/unittextures/decals/armfus_aoplane.dds and b/unittextures/decals/armfus_aoplane.dds differ diff --git a/unittextures/decals/armmakr_aoplane.dds b/unittextures/decals/armmakr_aoplane.dds index de4b4580552..e3d0b62a119 100644 Binary files a/unittextures/decals/armmakr_aoplane.dds and b/unittextures/decals/armmakr_aoplane.dds differ diff --git a/unittextures/decals/armmmkr_aoplane.dds b/unittextures/decals/armmmkr_aoplane.dds index 7ef3096b4b2..3af5b71b54f 100644 Binary files a/unittextures/decals/armmmkr_aoplane.dds and b/unittextures/decals/armmmkr_aoplane.dds differ diff --git a/unittextures/decals/armuwadves_aoplane.dds b/unittextures/decals/armuwadves_aoplane.dds index d338cea45ce..69ce94514c1 100644 Binary files a/unittextures/decals/armuwadves_aoplane.dds and b/unittextures/decals/armuwadves_aoplane.dds differ diff --git a/unittextures/decals/corestor_aoplane.dds b/unittextures/decals/corestor_aoplane.dds index cfad43f87ee..f4080095903 100644 Binary files a/unittextures/decals/corestor_aoplane.dds and b/unittextures/decals/corestor_aoplane.dds differ diff --git a/unittextures/decals/cormakr_aoplane.dds b/unittextures/decals/cormakr_aoplane.dds index 608e1f68f1f..bfbe9773c28 100644 Binary files a/unittextures/decals/cormakr_aoplane.dds and b/unittextures/decals/cormakr_aoplane.dds differ diff --git a/unittextures/decals/coruwadves_aoplane.dds b/unittextures/decals/coruwadves_aoplane.dds index 1144bd9ae3b..289e5e38930 100644 Binary files a/unittextures/decals/coruwadves_aoplane.dds and b/unittextures/decals/coruwadves_aoplane.dds differ diff --git a/unittextures/decals/coruwadves_aoplane.png b/unittextures/decals/coruwadves_aoplane.png deleted file mode 100644 index 6c4bc1384c6..00000000000 Binary files a/unittextures/decals/coruwadves_aoplane.png and /dev/null differ diff --git a/unittextures/decals/coruwes_aoplane.dds b/unittextures/decals/coruwes_aoplane.dds index fe58e8c9554..6b2633f65af 100644 Binary files a/unittextures/decals/coruwes_aoplane.dds and b/unittextures/decals/coruwes_aoplane.dds differ diff --git a/unittextures/decals/coruwfus_aoplane.dds b/unittextures/decals/coruwfus_aoplane.dds index 1f7d69c29d0..9c122e6e283 100644 Binary files a/unittextures/decals/coruwfus_aoplane.dds and b/unittextures/decals/coruwfus_aoplane.dds differ diff --git a/unittextures/decals/unitaoplates_atlas.dds b/unittextures/decals/unitaoplates_atlas.dds index f880d71445a..5867588557e 100644 Binary files a/unittextures/decals/unitaoplates_atlas.dds and b/unittextures/decals/unitaoplates_atlas.dds differ diff --git a/unittextures/decals/unitaoplates_atlas.tga b/unittextures/decals/unitaoplates_atlas.tga index b9191fffc0d..a5a8fd195b5 100644 Binary files a/unittextures/decals/unitaoplates_atlas.tga and b/unittextures/decals/unitaoplates_atlas.tga differ