OrderType = { HALT = -1, ATTACK = 0, BUILD = 1, MOVE = 2, GARRISON = 3, EJECT = 4, PATROL = 5, LAUNCH = 6, SUPPLY = 7, LOAD = 8, UNLOAD = 9, HACK = 10, FREEZE = 11 } UnitId = { ACS_MECH = 0, AINC_MECH = 1, ER_MECH = 2, ACS_TANK = 3, AINC_TANK = 4, ER_TANK = 5, ACS_ARTILLERY = 6, AINC_ARTILLERY = 7, ER_ARTILLERY = 8, ACS_ROBO_ENGINEER = 9, ACS_CYBORG_ENGINEER = 10, AINC_ROBO_ENGINEER = 11, AINC_CYBORG_ENGINEER = 12, ER_ROBO_ENGINEER = 13, ER_CYBORG_ENGINEER = 14, ACS_TRANSPORT = 15, AINC_TRANSPORT = 16, ER_TRANSPORT = 17, ACS_CARGO_SHIP = 18, AINC_CARGO_SHIP = 19, ER_CARGO_SHIP = 20, ACS_ASSAULT_CRUISER = 21, AINC_ASSAULT_CRUISER = 22, ER_ASSAULT_CRUISER = 23, ACS_ANTI_SUB_CRUISER = 24, AINC_ANTI_SUB_CRUISER = 25, ER_ANTI_SUB_CRUISER = 26, ACS_MISSILE_SUBMARINE = 27, AINC_MISSILE_SUBMARINE = 28, ER_MISSILE_SUBMARINE = 29, ACS_SUBMARINE = 30, AINC_SUBMARINE = 31, ER_SUBMARINE = 32, ACS_ICEBREAKER = 33, AINC_ICEBREAKER = 34, ER_ICEBREAKER = 35, FREEZER = 36, EMP_BOAT = 37, ACS_LAND_FACTORY = 38, AINC_LAND_FACTORY = 39, ER_LAND_FACTORY = 40, ACS_NAVAL_FACTORY = 41, AINC_NAVAL_FACTORY = 42, ER_NAVAL_FACTORY = 43, ACS_TRADE_CENTER = 44, AINC_TRADE_CENTER = 45, ER_TRADE_CENTER = 46, ACS_LAB = 47, AINC_LAB = 48, ER_LAB = 49, POINT_DEFENSE = 50, EXTRACTOR = 51, ACS_REFINERY = 52, AINC_REFINERY = 53, ER_REFINERY = 54, ICE_SHEET = 55 } WeaponClass = {DAMAGE = 0, FREEZE = 1} UnitClass = { WAR_MECH = 0, TANK = 1, ARTILLERY = 2, ENGINEER = 3, TRANSPORT = 4, RESOURCE_ROVER = 5, CRUISER = 6, CARRIER = 7, SUBMARINE = 8, ICEBREAKER = 9, FREEZER = 10, EMP_BOAT = 11, LAND_FACTORY = 12, NAVAL_FACTORY = 13, TRADE_CENTER = 14, LAB = 15, POINT_DEFENSE = 16, EXTRACTOR = 17, REFINERY = 18, ICE_SHEET = 19, } UnitType = {UNDERWATER = 0, SEA_LEVEL = 1, HOVER = 2, LAND = 3, AIR = 4} ArmorType = {CAST = 0, COMBINED = 1, MECHANIC = 2, SHELL = 3, STEEL = 4} vfxPrefix = "Models/VFX/" gameObjPrefix = "Models/GameObjects/" vehiclePrefix = gameObjPrefix .. "Units/Vehicles/" structurePrefix = gameObjPrefix .. "Units/Structures/" explosionVfx = { vfx = true, duration = 1, offset = 100, mesh = { numParticles = 1, texture = PATH .. 'Textures/Explosion/explosion07.png', lowLife = 3, highLife = 3, size = {x = 10, y = 10}, } } explosionSfx = { vfx = false, offset = 100, path = PATH .. 'Sounds/SFX/Explosions/explosion00.ogg', duration = 2500 } units = { { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 100, maxRange = 14, damage = 50, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = 0.428, y = 5.484, z = 3.08}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg' }, }, unitHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg' }, }, landHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/landHit.ogg' }, }, waterHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/waterHit.ogg' }, }, } }, unitClass = UnitClass.WAR_MECH, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 6, y = 9.22, z = 2.42}, hitboxOffset = {x = 0, y = 4.5, z = 0}, lineOfSight = 25, name = 'Mech', basePath = PATH .. vehiclePrefix .. 'Mechs/', meshPath = 'acsMech.xml', albedoPath = 'mech.jpg', colorNodes = {'WarRobotTemplate.001'}, selectionSfx = PATH .. 'Sounds/Units/WarMechs/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 1, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 100, maxRange = 14, damage = 50, maxFireAngle = .15, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = 2.46, y = 3.6, z = .53}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg' }, }, unitHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg' }, }, landHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/landHit.ogg' }, }, waterHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/waterHit.ogg' }, }, } }, unitClass = UnitClass.WAR_MECH, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 5.37, y = 6, z = 8.57}, hitboxOffset = {x = 0, y = 3.02, z = .16}, lineOfSight = 25, name = 'Mech', basePath = PATH .. vehiclePrefix .. 'Mechs/', meshPath = 'aincMech.xml', albedoPath = 'mech.jpg', colorNodes = {'blades'}, selectionSfx = PATH .. 'Sounds/Units/WarMechs/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .01, maxTurnAngle = .1, garrisonCategory = 1, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 100, maxRange = 14, damage = 50, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = 0, y = 4, z = 4.35}, rot = {w = 1, x = 0, y = 0, z = 0}, scale = .32 }, { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg' }, }, unitHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg' }, }, landHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/landHit.ogg' }, }, waterHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/waterHit.ogg' }, }, } }, unitClass = UnitClass.WAR_MECH, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 3.25, y = 3.86, z = 3.86}, hitboxOffset = {x = 0, y = 4.27, z = .13}, lineOfSight = 25, name = 'Mech', basePath = PATH .. vehiclePrefix .. 'Mechs/', meshPath = 'erMech.xml', albedoPath = 'mech.jpg', colorNodes = {'stripes'}, selectionSfx = PATH .. 'Sounds/Units/WarMechs/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 1, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 1000, damage = 200, maxRange = 50, maxFireAngle = .1, nodes = {{name = 'TankASHead', rotationSpeed = .05, vertical = false}, {name = 'barell', rotationSpeed = .05, angleConstraints = {min = 0, max = .349}, vertical = true}}, projectile = {id = ProjectileId.HE_SHELL, parent = 'barell', pos = {x = 0, y = .49, z = 8.35}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'barell', pos = {x = 0, y = .49, z = 8.35}, rot = {w = 1, x = 0, y = 0, z = 0}, scale = 1.5 } }, --landHitFx = {explosionVfx, explosionSfx}, --unitHitFx = {explosionVfx, explosionSfx} } }, unitClass = UnitClass.TANK, unitType = UnitType.LAND, armor = {ArmorType.STEEL}, maxUnevenness = .5, isVehicle = true, alignToSurface = true, health = 500, buildTime = 1000, cost = 500, size = {x = 11.505, y = 10.3979, z = 17.1902}, hitboxOffset = {x = 0, y = 5.46, z = .86}, lineOfSight = 25, name = 'Tank', basePath = PATH .. vehiclePrefix .. 'Tanks/', meshPath = 'acsTank.xml', albedoPath = 'tank.jpg', colorNodes = {'TankASHead'}, selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', speed = .4, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 1000, damage = 200, maxRange = 250, maxFireAngle = .1, nodes = {{name = 'TankGun_AM', rotationSpeed = .05, vertical = false}, {name = 'barell', rotationSpeed = .05, angleConstraints = {min = -.2, max = .74}, vertical = true}}, projectile = {id = ProjectileId.HE_SHELL, parent = 'barell', pos = {x = 0.06, y = .19, z = 9.18}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'barell', pos = {x = 0.06, y = .19, z = 9.18}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, --landHitFx = {explosionVfx, explosionSfx}, --unitHitFx = {explosionVfx, explosionSfx} } }, unitClass = UnitClass.TANK, unitType = UnitType.LAND, armor = {ArmorType.STEEL}, maxUnevenness = .5, isVehicle = true, alignToSurface = true, health = 500, buildTime = 1000, cost = 500, size = {x = 13.6, y = 6.79, z = 21.8}, hitboxOffset = {x = 0, y = 3.31, z = 0}, lineOfSight = 25, name = 'Tank', basePath = PATH .. vehiclePrefix .. 'Tanks/', meshPath = 'aincTank.xml', albedoPath = 'tank.jpg', colorNodes = {'barell'}, selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', speed = .4, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 1000, damage = 200, maxRange = 50, maxFireAngle = .1, nodes = {{name = 'turret', rotationSpeed = .05, vertical = false}}, projectile = {id = ProjectileId.HE_SHELL, parent = 'turret', pos = {x = 0, y = .67, z = 5}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'GunHead', pos = {x = 0, y = .67, z = 5}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, --landHitFx = {explosionVfx, explosionSfx}, --unitHitFx = {explosionVfx, explosionSfx} } }, unitClass = UnitClass.TANK, unitType = UnitType.LAND, armor = {ArmorType.STEEL}, maxUnevenness = .5, isVehicle = true, alignToSurface = true, health = 500, buildTime = 1000, cost = 500, size = {x = 7.2, y = 10.3, z = 15}, hitboxOffset = {x = 0, y = 5.27, z = .26}, lineOfSight = 25, name = 'Tank', basePath = PATH .. vehiclePrefix .. 'Tanks/', meshPath = 'erTank.xml', albedoPath = 'tank.jpg', colorNodes = {'GunPlatform'}, selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', speed = .4, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 2000, damage = 5000, maxRange = 700, maxFireAngle = .1, nodes = { {name = 'Asia_Mech.001', rotationSpeed = .05, vertical = false}, {name = 'Asia_Mech.002', rotationSpeed = .05, angleConstraints = {min = -.348, max = .785}, vertical = true} }, projectile = {id = ProjectileId.HE_SHELL, parent = 'Asia_Mech.002', pos = {x = 0., y = 0., z = 5.91}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = true, duration = 50, parent = 'Asia_Mech.002', pos = {x = 0., y = 0., z = 5.91}, rot = {w = 1, x = 0, y = 0, z = 0}, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, --scale = .5 }, { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', } }, } }, unitClass = UnitClass.ARTILLERY, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, alignToSurface = true, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 9.99, y = 15.4, z = 14.}, hitboxOffset = {x = 0, y = 7.69, z = .71}, lineOfSight = 30, name = 'Artillery', basePath = PATH .. vehiclePrefix .. 'Artillery/', meshPath = 'acsArtillery.xml', albedoPath = 'artillery.jpg', colorNodes = {'Asia_Mech.002'}, selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 2000, damage = 5000, maxRange = 70, maxFireAngle = .1, nodes = { {name = 'turret', rotationSpeed = .05, vertical = false}, {name = 'barrel', rotationSpeed = .05, angleConstraints = {min = -.139, max = .279}, vertical = true} }, projectile = {id = ProjectileId.HE_SHELL, parent = 'barrel', pos = {x = 0., y = 0, z = 9.14}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = true, duration = 50, parent = 'barrel', pos = {x = 0., y = 0, z = 9.14}, rot = {w = 1, x = 0, y = 0, z = 0}, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, --scale = .5 }, { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', } }, } }, unitClass = UnitClass.ARTILLERY, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, alignToSurface = true, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 10.4, y = 14, z = 12.9}, hitboxOffset = {x = 0, y = 7, z = 1.3}, lineOfSight = 30, name = 'Artillery', basePath = PATH .. vehiclePrefix .. 'Artillery/', meshPath = 'aincArtillery.xml', albedoPath = 'artillery.jpg', colorNodes = {'barrel'}, selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', speed = .3, destinationOffset = .01, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 2000, damage = 5000, maxRange = 70, maxFireAngle = .1, nodes = { {name = 'turret', rotationSpeed = .05, vertical = false}, --{name = 'tubes', rotationSpeed = .05, vertical = true} }, projectile = {id = ProjectileId.MISSILE, parent = 'tubes', pos = {x = 0.95, y = 2.16, z = 4.11}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = true, duration = 50, parent = 'tubes', pos = {x = 0.95, y = 2.16, z = 4.11}, rot = {w = 1, x = 0, y = 0, z = 0}, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, --scale = .5 }, { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/missile.ogg', } }, } }, unitClass = UnitClass.ARTILLERY, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, alignToSurface = true, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 6.8, y = 6.8, z = 15.2}, hitboxOffset = {x = 0, y = 1, z = 0}, lineOfSight = 30, name = 'Artillery', basePath = PATH .. vehiclePrefix .. 'Artillery/', meshPath = 'artillery.xml', albedoPath = 'artillery.jpg', colorNodes = {'turret'}, selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2, deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.ACS_LAND_FACTORY, buildable = true, trigger = 76}, {id = UnitId.ACS_NAVAL_FACTORY, buildable = true, trigger = 78}, {id = UnitId.ACS_TRADE_CENTER, buildable = true, trigger = 77}, {id = UnitId.ACS_LAB, buildable = true, trigger = 84}, {id = UnitId.ACS_REFINERY, buildable = true, trigger = 82}, {id = UnitId.POINT_DEFENSE, buildable = true, trigger = 80}, {id = UnitId.EXTRACTOR, buildable = true, trigger = 69}, }, unitClass = UnitClass.ENGINEER, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, hackRange = 200, buildTime = 1000, hackTime = 1000, cost = 500, size = {x = 2.43, y = 2.43, z = 2.47}, hitboxOffset = {x = 0, y = 1.21, z = 0}, lineOfSight = 500, name = 'Engineer', basePath = PATH .. vehiclePrefix .. 'Engineers/', albedoPath = 'engineer.jpg', colorNodes = {'Cube'}, meshPath = 'acsRoboEngineer.xml', selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg', speed = .5, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.HACK, rateOfFire = 100, maxRange = 150, damage = 0, } }, buildableUnits = { {id = UnitId.ACS_LAND_FACTORY, buildable = true, trigger = 76}, {id = UnitId.ACS_NAVAL_FACTORY, buildable = true, trigger = 78}, {id = UnitId.ACS_TRADE_CENTER, buildable = true, trigger = 77}, {id = UnitId.ACS_LAB, buildable = true, trigger = 84}, {id = UnitId.ACS_REFINERY, buildable = true, trigger = 82}, {id = UnitId.POINT_DEFENSE, buildable = true, trigger = 80}, {id = UnitId.EXTRACTOR, buildable = true, trigger = 69}, }, abilityButtons = {{buttonType = ButtonType.ORDER, name = 'Hack', orderType = OrderType.HACK}}, unitClass = UnitClass.ENGINEER, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, hackRange = 200, buildTime = 1000, hackTime = 1000, cost = 500, size = {x = 4.95, y = 6.59, z = 4.11}, hitboxOffset = {x = .178, y = 3.27, z = 0}, lineOfSight = 200, name = 'Engineer', basePath = PATH .. vehiclePrefix .. 'Engineers/', albedoPath = 'engineer.jpg', colorNodes = {'Engineer_Asia.001'}, meshPath = 'acsCyborgEngineer.xml', selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg', speed = .5, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.AINC_LAND_FACTORY, buildable = true, trigger = 76}, {id = UnitId.AINC_NAVAL_FACTORY, buildable = true, trigger = 78}, {id = UnitId.AINC_TRADE_CENTER, buildable = true, trigger = 77}, {id = UnitId.AINC_LAB, buildable = true, trigger = 84}, {id = UnitId.AINC_REFINERY, buildable = true, trigger = 82}, {id = UnitId.POINT_DEFENSE, buildable = true, trigger = 80}, {id = UnitId.EXTRACTOR, buildable = true, trigger = 69}, }, unitClass = UnitClass.ENGINEER, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, hackRange = 200, buildTime = 1000, hackTime = 1000, cost = 500, size = {x = 2, y = 2, z = 4.14}, hitboxOffset = {x = 0, y = 1.02, z = .19}, lineOfSight = 200, name = 'Engineer', basePath = PATH .. vehiclePrefix .. 'Engineers/', albedoPath = 'engineer.jpg', colorNodes = {'EngineerAM.001'}, meshPath = 'aincRoboEngineer.xml', selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg', speed = .5, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.HACK, rateOfFire = 100, maxRange = 150, damage = 0, } }, buildableUnits = { {id = UnitId.AINC_LAND_FACTORY, buildable = true, trigger = 76}, {id = UnitId.AINC_NAVAL_FACTORY, buildable = true, trigger = 78}, {id = UnitId.AINC_TRADE_CENTER, buildable = true, trigger = 77}, {id = UnitId.AINC_LAB, buildable = true, trigger = 84}, {id = UnitId.AINC_REFINERY, buildable = true, trigger = 82}, {id = UnitId.POINT_DEFENSE, buildable = true, trigger = 80}, {id = UnitId.EXTRACTOR, buildable = true, trigger = 69}, }, abilityButtons = {{buttonType = ButtonType.ORDER, name = 'Hack', orderType = OrderType.HACK}}, unitClass = UnitClass.ENGINEER, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, hackRange = 200, buildTime = 1000, hackTime = 1000, cost = 500, size = {x = 3.12, y = 5.31, z = 2.82}, hitboxOffset = {x = 0, y = 2.83, z = .4}, lineOfSight = 200, name = 'Engineer', basePath = PATH .. vehiclePrefix .. 'Engineers/', albedoPath = 'engineer.jpg', colorNodes = {'Cube.001'}, meshPath = 'aincCyborgEngineer.xml', selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg', speed = .5, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.ER_LAND_FACTORY, buildable = true, trigger = 76}, {id = UnitId.ER_NAVAL_FACTORY, buildable = true, trigger = 78}, {id = UnitId.ER_TRADE_CENTER, buildable = true, trigger = 77}, {id = UnitId.ER_LAB, buildable = true, trigger = 84}, {id = UnitId.ER_REFINERY, buildable = true, trigger = 82}, {id = UnitId.POINT_DEFENSE, buildable = true, trigger = 80}, {id = UnitId.EXTRACTOR, buildable = true, trigger = 69}, }, unitClass = UnitClass.ENGINEER, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, hackRange = 200, buildTime = 1000, hackTime = 1000, cost = 500, size = {x = 3, y = 2.74, z = 2.97}, hitboxOffset = {x = 0, y = 1.41, z = 1}, lineOfSight = 200, name = 'Engineer', basePath = PATH .. vehiclePrefix .. 'Engineers/', albedoPath = 'engineer.jpg', colorNodes = {'Cube.001'}, meshPath = 'erRoboEngineer.xml', selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg', speed = .5, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.HACK, rateOfFire = 100, maxRange = 150, damage = 0, } }, buildableUnits = { {id = UnitId.ER_LAND_FACTORY, buildable = true, trigger = 76}, {id = UnitId.ER_NAVAL_FACTORY, buildable = true, trigger = 78}, {id = UnitId.ER_TRADE_CENTER, buildable = true, trigger = 77}, {id = UnitId.ER_LAB, buildable = true, trigger = 84}, {id = UnitId.ER_REFINERY, buildable = true, trigger = 82}, {id = UnitId.POINT_DEFENSE, buildable = true, trigger = 80}, {id = UnitId.EXTRACTOR, buildable = true, trigger = 69}, }, abilityButtons = {{buttonType = ButtonType.ORDER, name = 'Hack', orderType = OrderType.HACK}}, unitClass = UnitClass.ENGINEER, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, isVehicle = true, health = 500, hackRange = 200, buildTime = 1000, hackTime = 1000, cost = 500, size = {x = 3.65, y = 5.71, z = 3.86}, hitboxOffset = {x = 0, y = 2.9, z = .55}, lineOfSight = 200, name = 'Engineer', basePath = PATH .. vehiclePrefix .. 'Engineers/', albedoPath = 'engineer.jpg', colorNodes = {'Rig.001'}, meshPath = 'erCyborgEngineer.xml', selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg', speed = .5, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = {{name = 'turret', rotationSpeed = .05, vertical = false}}, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = 2.23, y = 4.16, z = 23}, rot = {w = 1, x = 0, y = 0, z = 0}, parent = 'turret' --scale = .5 }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = -2.23, y = 4.16, z = 23}, rot = {w = 1, x = 0, y = 0, z = 0}, parent = 'turret' --scale = .5 }, { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg' }, }, unitHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg' }, }, landHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/landHit.ogg' }, }, waterHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/waterHit.ogg' }, }, } }, unitClass = UnitClass.TRANSPORT, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, alignToSurface = true, isVehicle = true, health = 500, buildTime = 1000, cost = 500, garrisonCapacity = {2, 2, 2}, size = {x = 16.5, y = 15.2, z = 45.8}, hitboxOffset = {x = 0, y = 7, z = 0}, lineOfSight = 5, colorNodes = {'Cube.002'}, name = 'Transport', basePath = PATH .. vehiclePrefix .. 'Transports/', meshPath = 'acsTransport.xml', albedoPath = 'transport.jpg', selectionSfx = PATH .. 'Sounds/Units/Transports/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = {{name = 'turret', rotationSpeed = .05, vertical = false}}, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = 0, y = 4.4, z = 15.6}, rot = {w = 1, x = 0, y = 0, z = 0}, parent = 'turret' --scale = .5 }, { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg' }, }, unitHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg' }, }, landHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/landHit.ogg' }, }, waterHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/waterHit.ogg' }, }, } }, unitClass = UnitClass.TRANSPORT, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, alignToSurface = true, isVehicle = true, health = 500, buildTime = 1000, cost = 500, garrisonCapacity = {2, 2, 2}, size = {x = 24.4, y = 15.8, z = 49.2}, hitboxOffset = {x = 0, y = 7, z = 0}, lineOfSight = 5, colorNodes = {'turret'}, name = 'Transport', basePath = PATH .. vehiclePrefix .. 'Transports/', meshPath = 'aincTransport.xml', albedoPath = 'transport.jpg', selectionSfx = PATH .. 'Sounds/Units/Transports/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = {{name = 'turret', rotationSpeed = .05, vertical = false}}, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = 0, y = 13, z = 12}, rot = {w = 1, x = 0, y = 0, z = 0}, parent = 'turret' --scale = .5 }, { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg' }, }, unitHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg' }, }, landHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/landHit.ogg' }, }, waterHitFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/waterHit.ogg' }, }, } }, unitClass = UnitClass.TRANSPORT, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, maxUnevenness = .5, alignToSurface = true, isVehicle = true, health = 500, buildTime = 1000, cost = 500, garrisonCapacity = {2, 2, 2}, size = {x = 17.7, y = 9.3, z = 57}, hitboxOffset = {x = 0, y = 4.8, z = 1}, lineOfSight = 5, colorNodes = {'turret'}, name = 'Transport', basePath = PATH .. vehiclePrefix .. 'Transports/', meshPath = 'erTransport.xml', albedoPath = 'transport.jpg', selectionSfx = PATH .. 'Sounds/Units/Transports/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = {}, abilityButtons = { {buttonType = ButtonType.ORDER, name = 'Supply', orderType = OrderType.SUPPLY}, {buttonType = ButtonType.ORDER, name = 'Load', orderType = OrderType.LOAD}, {buttonType = ButtonType.ORDER, name = 'Unload', orderType = OrderType.UNLOAD}, }, unitClass = UnitClass.RESOURCE_ROVER, unitType = UnitType.HOVER, armor = {ArmorType.CAST}, maxUnevenness = .5, alignToSurface = true, capacity = 3000, loadRate = 1, loadSpeed = 5, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 8.66, y = 5.12, z = 30.3}, hitboxOffset = {x = 0, y = 2.65, z = 0}, lineOfSight = 5, name = 'Cargo ship', colorNodes = {'Cargo'}, basePath = PATH .. vehiclePrefix .. 'Cargoships/', meshPath = 'acsCargoShip.xml', albedoPath = 'cargoship.jpg', selectionSfx = PATH .. 'Sounds/Units/Cargoships/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = {}, abilityButtons = { {buttonType = ButtonType.ORDER, name = 'Supply', orderType = OrderType.SUPPLY}, {buttonType = ButtonType.ORDER, name = 'Load', orderType = OrderType.LOAD}, {buttonType = ButtonType.ORDER, name = 'Unload', orderType = OrderType.UNLOAD}, }, unitClass = UnitClass.RESOURCE_ROVER, unitType = UnitType.HOVER, armor = {ArmorType.CAST}, maxUnevenness = .5, alignToSurface = true, capacity = 3000, loadRate = 1, loadSpeed = 5, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 8.66, y = 5.12, z = 30.3}, hitboxOffset = {x = 0, y = 2.65, z = 0}, lineOfSight = 5, name = 'Cargo ship', colorNodes = {'Cargo'}, basePath = PATH .. vehiclePrefix .. 'Cargoships/', meshPath = 'aincCargoShip.xml', albedoPath = 'cargoship.jpg', selectionSfx = PATH .. 'Sounds/Units/Cargoships/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = {}, abilityButtons = { {buttonType = ButtonType.ORDER, name = 'Supply', orderType = OrderType.SUPPLY}, {buttonType = ButtonType.ORDER, name = 'Load', orderType = OrderType.LOAD}, {buttonType = ButtonType.ORDER, name = 'Unload', orderType = OrderType.UNLOAD}, }, unitClass = UnitClass.RESOURCE_ROVER, unitType = UnitType.HOVER, armor = {ArmorType.CAST}, maxUnevenness = .5, alignToSurface = true, capacity = 3000, loadRate = 1, loadSpeed = 5, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 8.66, y = 5.12, z = 30.3}, hitboxOffset = {x = 0, y = 2.65, z = 0}, lineOfSight = 5, name = 'Cargo ship', colorNodes = {'Cargo'}, basePath = PATH .. vehiclePrefix .. 'Cargoships/', meshPath = 'erCargoShip.xml', albedoPath = 'cargoship.jpg', selectionSfx = PATH .. 'Sounds/Units/Cargoships/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'FrontTurret', rotationSpeed = .05, angleConstraints = {min = -2.53, max = 2.53}, vertical = false}, {name = 'FrontTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.174, max = .174}, vertical = true} }, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'FrontTurretBarrel', pos = {x = 0., y = 5.7, z = 23}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'RearTurret', rotationSpeed = .05, angleConstraints = {min = -2.53, max = 2.53}, vertical = false}, {name = 'FrontTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.174, max = .174}, vertical = true} }, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'RearTurretBarrel', pos = {x = 0., y = 5.7, z = 23}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 70, nodes = {{name = 'AATuret', rotationSpeed = .05, vertical = false}, {name = 'aaBarrels', angleConstraints = {min = 0, max = .8}, rotationSpeed = .05, vertical = true}}, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'aaBarrels', pos = {x = 1.46, y = 0, z = 12.5}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'aaBarrels', pos = {x = -1.46, y = 0, z = 12.5}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg'}, }, unitHitFx = {{vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg'}}, }, }, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 18.9, y = 37.5, z = 96.1}, hitboxOffset = {x = 0, y = 11.465, z = 3.05}, lineOfSight = 50, colorNodes = {'AATuret'}, name = 'Assault cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'heavyAssaultCruiser.xml', albedoPath = 'cruiser.jpg', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = {{name = 'frontTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44}, vertical = false}}, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'frontTurret', pos = {x = 0., y = 2.9, z = 18}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = {{name = 'rearTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44}, vertical = false}}, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'rearTurret', pos = {x = 0., y = 2.9, z = 18}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = {{name = 'frontAATurret', rotationSpeed = .05, vertical = false}, {name = 'frontAATurretBarrel', rotationSpeed = .05, vertical = true}}, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'frontAATurretBarrel', pos = {x = 0, y = 0, z = 13.9}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg'}, }, unitHitFx = {{vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg'}}, }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = {{name = 'rearAATurret', rotationSpeed = .05, vertical = false}, {name = 'rearAATurretBarrel', rotationSpeed = .05, vertical = true}}, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'rearAATurretBarrel', pos = {x = 0, y = 0, z = 15}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg'}, }, unitHitFx = {{vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg'}}, }, }, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 21.2, y = 26.3, z = 85.8}, hitboxOffset = {x = 0, y = 6.92, z = .66}, lineOfSight = 5, colorNodes = {'frontAATurret', 'rearAATurret'}, name = 'Assault cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'mediumAssaultCruiser.xml', albedoPath = 'cruiser.jpg', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'frontTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44}, vertical = false}, {name = 'frontTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.2267, max = .2267}, vertical = true}, }, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'frontTurretBarrel', pos = {x = 0., y = 2.8, z = 11}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'rearTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44}, vertical = false}, {name = 'rearTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.2267, max = .2267}, vertical = true}, }, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'rearTurretBarrel', pos = {x = 0., y = 2.8, z = 11}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'aaTurret', rotationSpeed = .05, vertical = false}, {name = 'aaTurretBarrels', rotationSpeed = .05, angleConstraints = {min = 0, max = .523}, vertical = true} }, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'aaTurretBarrels', pos = {x = .86, y = 0, z = 9.09}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'aaTurretBarrels', pos = {x = -.86, y = 0, z = 9.09}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg'}, }, unitHitFx = {{vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/unitHit.ogg'}}, }, }, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 21.1, y = 22.6, z = 67.3}, hitboxOffset = {x = 0, y = 6.42, z = 3.2}, lineOfSight = 5, colorNodes = {'aaTurret'}, name = 'Assault cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'lightAssaultCruiser.xml', albedoPath = 'cruiser.jpg', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 2000, damage = 10, maxRange = 100, targetUnits = {UnitType.UNDERWATER}, targetProjectiles = {}, fireDir = {x = 0, y = -1, z = 0}, projectile = {id = ProjectileId.DEPTH_CHARGE, parent = 'hull', pos = {x = 0, y = -2, z = 0}, rot = {w = .707, x = .707, y = 0, z = 0}}, fireFx = { {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Submarines/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, minRange = 10, maxRange = 500, maxFireAngle = .01, nodes = { {name = 'FrontTurret', rotationSpeed = .05, angleConstraints = {min = -2.53, max = 2.53}, vertical = false}, {name = 'FrontTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.174, max = .174}, vertical = true} }, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'FrontTurretBarrel', pos = {x = 0., y = 0, z = 10.5}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, minRange = 10, maxRange = 500, maxFireAngle = .01, nodes = { {name = 'RearTurret', rotationSpeed = .05, angleConstraints = {min = -2.53, max = 2.53}, vertical = false}, {name = 'RearTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.174, max = .174}, vertical = true} }, fireFx = { { vfx = true, duration = 50, mesh = {size = {x = .16, y = .16}, color = {x = 1, y = 0, z = 0, a = 1}}, parent = 'RearTurretBarrel', pos = {x = 0., y = 0, z = 10.5}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 }, {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Cruisers/fire.ogg'} }, hitFx = {} }, }, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 6.93, y = 17.7, z = 76.1}, hitboxOffset = {x = 0, y = 4.77, z = 0}, lineOfSight = 100, colorNodes = {'FrontTurret', 'RearTurret'}, name = 'Anti sub cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'acsAntiSubCruiser.xml', albedoPath = 'cruiser.jpg', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 2000, damage = 10, maxRange = 100, targetUnits = {UnitType.UNDERWATER}, targetProjectiles = {}, fireDir = {x = 0, y = -1, z = 0}, projectile = {id = ProjectileId.DEPTH_CHARGE, parent = 'Cruiser', pos = {x = 0, y = -2, z = 0}, rot = {w = .707, x = .707, y = 0, z = 0}}, fireFx = { {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Submarines/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'frontTurret', rotationSpeed = .05, angleConstraints = {min = -2.26, max = 2.26}, vertical = false}, {name = 'frontTurretBarrels', rotationSpeed = .05, angleConstraints = {min = -.1395, max = .348}, vertical = true} }, projectile = {id = ProjectileId.HE_SHELL, parent = 'frontTurret', pos = {x = 0.52, y = .83, z = 4.16}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'frontTurretBarrels', pos = {x = 0.52, y = .83, z = 4.16}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'middleTurret', rotationSpeed = .05, vertical = false}, {name = 'middleTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.0872, max = .209}, vertical = true} }, projectile = {id = ProjectileId.HE_SHELL, parent = 'middleTurret', pos = {x = 0, y = 1.8, z = 7.45}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'middleTurretBarrel', pos = {x = 0, y = 1.8, z = 7.45}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'rearTurret', rotationSpeed = .05, angleConstraints = {min = -2.79, max = 2.79}, vertical = false}, {name = 'rearTurretBarrel', rotationSpeed = .05, angleConstraints = {min = -.0872, max = .209}, vertical = true} }, projectile = {id = ProjectileId.HE_SHELL, parent = 'rearTurret', pos = {x = 0, y = 1.8, z = 7.45}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'rearTurret', pos = {x = 0, y = 1.8, z = 7.45}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, }, }, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 9.09, y = 13.6, z = 66.6}, hitboxOffset = {x = 0, y = .88, z = 0}, lineOfSight = 100, colorNodes = {'sides'}, name = 'Anti sub cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'aincAntiSubCruiser.xml', albedoPath = 'cruiser.jpg', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 2000, damage = 10, maxRange = 100, targetUnits = {UnitType.UNDERWATER}, targetProjectiles = {}, fireDir = {x = 0, y = -1, z = 0}, projectile = {id = ProjectileId.DEPTH_CHARGE, parent = 'Gunship', pos = {x = 0, y = -2, z = 0}, rot = {w = .707, x = .707, y = 0, z = 0}}, fireFx = { {vfx = false, duration = 50, path = PATH .. 'Sounds/Units/Submarines/fire.ogg'} }, hitFx = {} }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'frontLowerTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44} , vertical = false}, {name = 'frontLowerTurretBarrels', rotationSpeed = .05, angleConstraints = {min = 0, max = .785}, vertical = true}, }, projectile = {id = ProjectileId.HE_SHELL, parent = 'frontLowerTurret', pos = {x = .42, y = 1.68, z = 4.14}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'frontLowerTurretBarrels', pos = {x = .42, y = 1.68, z = 4.14}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'frontUpperTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44} , vertical = false}, {name = 'frontUpperTurretBarrels', rotationSpeed = .05, angleConstraints = {min = 0, max = .785}, vertical = true}, }, projectile = {id = ProjectileId.HE_SHELL, parent = 'frontUpperTurret', pos = {x = .42, y = 1.68, z = 4.14}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'frontUpperTurretBarrels', pos = {x = .42, y = 1.68, z = 4.14}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'rearLowerTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44} , vertical = false}, {name = 'rearLowerTurretBarrels', rotationSpeed = .05, angleConstraints = {min = 0, max = .785}, vertical = true}, }, projectile = {id = ProjectileId.HE_SHELL, parent = 'rearLowerTurret', pos = {x = .42, y = 1.68, z = 4.14}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'rearLowerTurretBarrels', pos = {x = .42, y = 1.68, z = 4.14}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, }, { orderType = OrderType.ATTACK, rateOfFire = 200, damage = 10, maxRange = 50, nodes = { {name = 'rearUpperTurret', rotationSpeed = .05, angleConstraints = {min = -2.44, max = 2.44} , vertical = false}, {name = 'rearUpperTurretBarrels', rotationSpeed = .05, angleConstraints = {min = 0, max = .785}, vertical = true}, }, projectile = {id = ProjectileId.HE_SHELL, parent = 'rearUpperTurret', pos = {x = .42, y = 5.82, z = 11.4}, rot = {w = 1, x = 0, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, parent = 'rearUpperTurretBarrels', pos = {x = .42, y = 1.68, z = 4.14}, rot = {w = 1, x = 0, y = 0, z = 0}, --scale = .5 } }, }, }, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 6.59, y = 8.6, z = 71.8}, hitboxOffset = {x = 0, y = 1.11, z = .84}, lineOfSight = 100, colorNodes = {'Gunship.001'}, name = 'Anti sub cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'erAntiSubCruiser.xml', albedoPath = 'cruiser.jpg', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 1000, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/fire.ogg', } }, damage = 200, maxRange = 200, projectile = {id = ProjectileId.TORPEDO, pos = {x = 0, y = -.27, z = 4.6}, rot = {w = 1, x = 0, y = 0, z = 0}} }, { orderType = OrderType.LAUNCH, rateOfFire = 500, maxRange = 30, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/missile.ogg', } }, projectile = {id = ProjectileId.CRUISE_MISSILE, pos = {x = 0, y = 15, z = -3.5}, rot = {w = .707, x = -.707, y = 0, z = 0}} }, }, unitClass = UnitClass.SUBMARINE, unitType = UnitType.UNDERWATER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 9.29, y = 11.6, z = 32.9}, hitboxOffset = {x = 0, y = 1.8, z = -1.3}, lineOfSight = 50, name = 'Missile submarine', basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'acsMissileSubmarine.xml', albedoPath = 'submarine.jpg', colorNodes = {'Cube.001'}, selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 1000, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/fire.ogg', } }, damage = 200, maxRange = 20, projectile = {id = ProjectileId.TORPEDO, pos = {x = 0, y = -.27, z = 4.6}, rot = {w = 1, x = 0, y = 0, z = 0}} }, { orderType = OrderType.LAUNCH, rateOfFire = 500, maxRange = 30, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/missile.ogg', } }, projectile = {id = ProjectileId.CRUISE_MISSILE, pos = {x = 0, y = 15, z = -3.5}, rot = {w = .707, x = -.707, y = 0, z = 0}} }, }, unitClass = UnitClass.SUBMARINE, unitType = UnitType.UNDERWATER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, hitboxOffset = {x = 0, y = 1.83, z = 0}, size = {x = 8.32, y = 12.1, z = 57.4}, lineOfSight = 50, name = 'Missile submarine', basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'aincMissileSubmarine.xml', albedoPath = 'submarine.jpg', colorNodes = {'Cube.001'}, selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 1000, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/fire.ogg', } }, damage = 200, maxRange = 20, projectile = {id = ProjectileId.TORPEDO, pos = {x = 0, y = -.27, z = 4.6}, rot = {w = 1, x = 0, y = 0, z = 0}} }, { orderType = OrderType.LAUNCH, rateOfFire = 500, maxRange = 30, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/missile.ogg', } }, projectile = {id = ProjectileId.CRUISE_MISSILE, pos = {x = 0, y = 15, z = -3.5}, rot = {w = .707, x = -.707, y = 0, z = 0}} }, }, unitClass = UnitClass.SUBMARINE, unitType = UnitType.UNDERWATER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 7.9, y = 10.7, z = 63}, hitboxOffset = {x = 0, y = 2.29, z = -1.09}, lineOfSight = 500, name = 'Missile submarine', basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'erMissileSubmarine.xml', albedoPath = 'submarine.jpg', colorNodes = {'Sphere.001'}, selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, projectile = {id = ProjectileId.TORPEDO, pos = {x = 0, y = -.27, z = 4.6}, rot = {w = 1, x = 0, y = 0, z = 0}}, damage = 200, maxRange = 200, rateOfFire = 500, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/fire.ogg', } }, } }, unitClass = UnitClass.SUBMARINE, unitType = UnitType.UNDERWATER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 9.29, y = 11.6, z = 32.9}, hitboxOffset = {x = 0, y = 1.8, z = -1.3}, lineOfSight = 0, name = 'Stealth submarine', colorNodes = {'Cube.001'}, basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'acsSubmarine.xml', albedoPath = 'submarine.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .2, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, projectile = {id = ProjectileId.TORPEDO, pos = {x = 0, y = -.27, z = 4.6}, rot = {w = 1, x = 0, y = 0, z = 0}}, damage = 200, maxRange = 20, rateOfFire = 500, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/fire.ogg', } }, } }, unitClass = UnitClass.SUBMARINE, unitType = UnitType.UNDERWATER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, hitboxOffset = {x = 0, y = 1.83, z = -3.46}, size = {x = 8.32, y = 12.1, z = 57.4}, lineOfSight = 0, name = 'Stealth submarine', colorNodes = {'Cube.001'}, basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'aincSubmarine.xml', albedoPath = 'submarine.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, projectile = {id = ProjectileId.TORPEDO, pos = {x = 0, y = -.27, z = 4.6}, rot = {w = 1, x = 0, y = 0, z = 0}}, damage = 200, maxRange = 20, rateOfFire = 500, fireFx = { { vfx = false, duration = 2500, path = PATH .. 'Sounds/Units/Submarines/fire.ogg', } }, } }, unitClass = UnitClass.SUBMARINE, unitType = UnitType.UNDERWATER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, hitboxOffset = {x = 0, y = 1.03, z = -1.41}, size = {x = 5.37, y = 7.66, z = 43}, lineOfSight = 0, name = 'Stealth submarine', colorNodes = {'Sphere.001'}, basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'erSubmarine.xml', albedoPath = 'submarine.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.ICEBREAKER, unitType = UnitType.SEA_LEVEL, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 19.6, y = 23.9, z = 79}, hitboxOffset = {x = 0, y = 6.7, z = 0}, lineOfSight = 25, name = 'Icebreaker', colorNodes = {'Cube.001'}, basePath = PATH .. vehiclePrefix .. 'Icebreakers/', meshPath = 'acsIcebreaker.xml', albedoPath = 'icebreaker.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.ICEBREAKER, unitType = UnitType.SEA_LEVEL, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 24.2, y = 24.5, z = 75.7}, hitboxOffset = {x = 0, y = 7.6, z = 5.88}, lineOfSight = 25, name = 'Icebreaker', colorNodes = {'Cube.001'}, basePath = PATH .. vehiclePrefix .. 'Icebreakers/', meshPath = 'aincIcebreaker.xml', albedoPath = 'icebreaker.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.ICEBREAKER, unitType = UnitType.SEA_LEVEL, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 23.3, y = 25.8, z = 75.8}, hitboxOffset = {x = 0, y = 6.71, z = 5.95}, lineOfSight = 25, name = 'Icebreaker', colorNodes = {'Cube.001'}, basePath = PATH .. vehiclePrefix .. 'Icebreakers/', meshPath = 'erIcebreaker.xml', albedoPath = 'icebreaker.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { type = WeaponClass.FREEZE, orderType = OrderType.ATTACK, rateOfFire = 100, maxRange = 30, damage = 0, nodes = { {name = 'turret', rotationSpeed = .05, vertical = false}, {name = 'barrel', rotationSpeed = .05, angleConstraints = {min = -.523, max = .523}, vertical = true}, }, fireFx = { { vfx = false, duration = 500, path = PATH .. 'Sounds/SFX/Freezing/freeze.ogg' }, }, unitHitFx = {}, landHitFx = {}, waterHitFx = {}, } }, buildableUnits = {{id = UnitId.ICE_SHEET, buildable = true, trigger = 83}}, unitClass = UnitClass.FREEZER, unitType = UnitType.SEA_LEVEL, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 20.3, y = 12.5, z = 56.2}, hitboxOffset = {x = 0, y = 4.7, z = 0}, lineOfSight = 25, name = 'Freezer', colorNodes = {'CryoGun'}, basePath = PATH .. vehiclePrefix .. 'Freezers/', meshPath = 'freezer.xml', albedoPath = 'freezer.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .3, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 1000, damage = 0, maxRange = 25, maxFireAngle = .1, nodes = {{name = 'turret', rotationSpeed = .05, vertical = false}}, projectile = {id = ProjectileId.EMP_SHELL, parent = 'turret', pos = {x = 0.06, y = 5.82, z = 11.4}, rot = {w = .998, x = -.066, y = 0, z = 0}}, fireFx = { { vfx = false, duration = 300, path = PATH .. 'Sounds/Units/Tanks/attack.ogg', }, }, } }, unitClass = UnitClass.EMP_BOAT, unitType = UnitType.SEA_LEVEL, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 7.3, y = 7.15, z = 37.9}, hitboxOffset = {x = 0, y = 1.13, z = 1.83}, lineOfSight = 25, name = 'EMP boat', colorNodes = {'turret'}, basePath = PATH .. vehiclePrefix .. 'EMPShips/', meshPath = 'empShip.xml', albedoPath = 'empShip.jpg', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3, deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.ACS_MECH, buildable = true, trigger = 87}, {id = UnitId.ACS_TANK, buildable = true, trigger = 84}, {id = UnitId.ACS_ARTILLERY, buildable = true, trigger = 65}, {id = UnitId.ACS_CARGO_SHIP, buildable = true, trigger = 82}, {id = UnitId.ACS_ROBO_ENGINEER, buildable = true, trigger = 85}, {id = UnitId.ACS_CYBORG_ENGINEER, buildable = true, trigger = 86} }, unitClass = UnitClass.LAND_FACTORY, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 38.5, y = 34, z = 38.5}, hitboxOffset = {x = 0, y = 16.7, z = .0}, lineOfSight = 5, colorNodes = {'ring'}, name = 'Land factory', albedoPath = 'factory.jpg', basePath = PATH .. structurePrefix .. 'LandFactories/', meshPath = 'acsFactory.xml', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.AINC_MECH, buildable = true, trigger = 87}, {id = UnitId.AINC_TANK, buildable = true, trigger = 84}, {id = UnitId.AINC_ARTILLERY, buildable = true, trigger = 65}, {id = UnitId.AINC_CARGO_SHIP, buildable = true, trigger = 82}, {id = UnitId.AINC_ROBO_ENGINEER, buildable = true, trigger = 85}, {id = UnitId.AINC_CYBORG_ENGINEER, buildable = true, trigger = 86} }, unitClass = UnitClass.LAND_FACTORY, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 26.8, y = 22.3, z = 26}, hitboxOffset = {x = -.94, y = 6.09, z = .95}, lineOfSight = 5, colorNodes = {'Cube.002'}, name = 'Land factory', albedoPath = 'factory.jpg', basePath = PATH .. structurePrefix .. 'LandFactories/', meshPath = 'aincFactory.xml', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.ER_MECH, buildable = true, trigger = 87}, {id = UnitId.ER_TANK, buildable = true, trigger = 84}, {id = UnitId.ER_ARTILLERY, buildable = true, trigger = 65}, {id = UnitId.ER_CARGO_SHIP, buildable = true, trigger = 82}, {id = UnitId.ER_ROBO_ENGINEER, buildable = true, trigger = 85}, {id = UnitId.ER_CYBORG_ENGINEER, buildable = true, trigger = 86} }, unitClass = UnitClass.LAND_FACTORY, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 31.4, y = 15.9, z = 29.1}, hitboxOffset = {x = 0, y = 7.92, z = .48}, lineOfSight = 5, colorNodes = {'Sphere.001'}, name = 'Land factory', albedoPath = 'factory.jpg', basePath = PATH .. structurePrefix .. 'LandFactories/', meshPath = 'erFactory.xml', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.ACS_ASSAULT_CRUISER, buildable = true, trigger = 76}, {id = UnitId.ACS_ANTI_SUB_CRUISER, buildable = true, trigger = 78}, {id = UnitId.ACS_MISSILE_SUBMARINE, buildable = true, trigger = 77}, {id = UnitId.ACS_SUBMARINE, buildable = true, trigger = 84}, {id = UnitId.ACS_CARGO_SHIP, buildable = true, trigger = 80}, {id = UnitId.ACS_ROBO_ENGINEER, buildable = true, trigger = 82}, {id = UnitId.ACS_ICEBREAKER, buildable = true, trigger = 69}, {id = UnitId.ACS_TRANSPORT, buildable = true, trigger = 70}, }, unitClass = UnitClass.NAVAL_FACTORY, unitType = UnitType.SEA_LEVEL, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 142, y = 70, z = 122}, hitboxOffset = {x = 0, y = 28.4, z = -29}, lineOfSight = 5, name = 'Naval factory', basePath = PATH .. structurePrefix .. 'NavalFactories/', meshPath = 'acsFactory.xml', colorNodes = {'stripes'}, albedoPath = 'factory.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.AINC_ASSAULT_CRUISER, buildable = true, trigger = 76}, {id = UnitId.AINC_ANTI_SUB_CRUISER, buildable = true, trigger = 78}, {id = UnitId.AINC_MISSILE_SUBMARINE, buildable = true, trigger = 77}, {id = UnitId.AINC_SUBMARINE, buildable = true, trigger = 84}, {id = UnitId.AINC_CARGO_SHIP, buildable = true, trigger = 80}, {id = UnitId.AINC_ICEBREAKER, buildable = true, trigger = 69}, {id = UnitId.AINC_ROBO_ENGINEER, buildable = true, trigger = 82}, {id = UnitId.AINC_TRANSPORT, buildable = true, trigger = 70}, }, unitClass = UnitClass.NAVAL_FACTORY, unitType = UnitType.SEA_LEVEL, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 131, y = 39, z = 109}, hitboxOffset = {x = 0, y = 18, z = 0}, lineOfSight = 5, name = 'Naval factory', colorNodes = {'roof'}, basePath = PATH .. structurePrefix .. 'NavalFactories/', meshPath = 'aincFactory.xml', albedoPath = 'factory.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { buildableUnits = { {id = UnitId.ER_ASSAULT_CRUISER, buildable = true, trigger = 76}, {id = UnitId.ER_ANTI_SUB_CRUISER, buildable = true, trigger = 78}, {id = UnitId.ER_MISSILE_SUBMARINE, buildable = true, trigger = 77}, {id = UnitId.ER_SUBMARINE, buildable = true, trigger = 84}, {id = UnitId.ER_CARGO_SHIP, buildable = true, trigger = 80}, {id = UnitId.ER_ICEBREAKER, buildable = true, trigger = 69}, {id = UnitId.EMP_BOAT, buildable = true, trigger = 81}, {id = UnitId.FREEZER, buildable = true, trigger = 83}, {id = UnitId.ER_ROBO_ENGINEER, buildable = true, trigger = 82}, {id = UnitId.ER_TRANSPORT, buildable = true, trigger = 70}, }, unitClass = UnitClass.NAVAL_FACTORY, unitType = UnitType.SEA_LEVEL, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 107, y = 30, z = 87}, hitboxOffset = {x = 0, y = 10, z = -14}, lineOfSight = 5, name = 'Naval factory', colorNodes = {'building'}, basePath = PATH .. structurePrefix .. 'NavalFactories/', meshPath = 'erFactory.xml', albedoPath = 'factory.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.TRADE_CENTER, unitType = UnitType.LAND, abilityButtons = { {buttonType = ButtonType.BUY_REFINEDS, name = 'Buy ref', trigger = 73}, {buttonType = ButtonType.SELL_REFINEDS, name = 'Sell ref', trigger = 79}, {buttonType = ButtonType.BUY_RESEARCH, name = 'Buy rsch', trigger = 75}, {buttonType = ButtonType.SELL_RESEARCH, name = 'Sell rsch', trigger = 76} }, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 25.3, y = 78.4, z = 25.3}, hitboxOffset = {x = 0, y = 35.7, z = 0}, lineOfSight = 5, colorNodes = {'wall'}, name = 'Trade center', basePath = PATH .. structurePrefix .. 'TradeCenters/', meshPath = 'acsTradeCenter.xml', albedoPath = 'tradeCenter.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.TRADE_CENTER, unitType = UnitType.LAND, abilityButtons = { {buttonType = ButtonType.BUY_REFINEDS, name = 'Buy ref', trigger = 73}, {buttonType = ButtonType.SELL_REFINEDS, name = 'Sell ref', trigger = 79}, {buttonType = ButtonType.BUY_RESEARCH, name = 'Buy rsch', trigger = 75}, {buttonType = ButtonType.SELL_RESEARCH, name = 'Sell rsch', trigger = 76} }, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 25.4, y = 103, z = 25.4}, hitboxOffset = {x = 0, y = 51.4, z = 0}, lineOfSight = 5, colorNodes = {'Cube.001'}, name = 'Trade center', basePath = PATH .. structurePrefix .. 'TradeCenters/', meshPath = 'aincTradeCenter.xml', albedoPath = 'tradeCenter.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.TRADE_CENTER, unitType = UnitType.LAND, abilityButtons = { {buttonType = ButtonType.BUY_REFINEDS, name = 'Buy ref', trigger = 73}, {buttonType = ButtonType.SELL_REFINEDS, name = 'Sell ref', trigger = 79}, {buttonType = ButtonType.BUY_RESEARCH, name = 'Buy rsch', trigger = 75}, {buttonType = ButtonType.SELL_RESEARCH, name = 'Sell rsch', trigger = 76} }, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 17.7, y = 92.4, z = 17.7}, hitboxOffset = {x = 0, y = 46.7, z = 0}, lineOfSight = 5, colorNodes = {'sphere'}, name = 'Trade center', basePath = PATH .. structurePrefix .. 'TradeCenters/', meshPath = 'erTradeCenter.xml', albedoPath = 'tradeCenter.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.LAB, unitType = UnitType.LAND, maxUnevenness = .5, abilityButtons = {{buttonType = ButtonType.ACTIVE_STATE, name = 'Tech tree', guiScreen = 'acsTechTree.lua'}}, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 29.4, y = 21., z = 29.8}, hitboxOffset = {x = 0, y = 10.5, z = 0}, lineOfSight = 50, generationRate = 100, generationSpeed = 10, researchCost = 1, name = 'Lab', colorNodes = {'stripes'}, basePath = PATH .. structurePrefix .. 'Labs/', meshPath = 'acsLab.xml', albedoPath = 'lab.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.LAB, unitType = UnitType.LAND, maxUnevenness = .5, abilityButtons = {{buttonType = ButtonType.ACTIVE_STATE, name = 'Tech tree', guiScreen = 'aincTechTree.lua'}}, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 49.3, y = 37.4, z = 49.3}, hitboxOffset = {x = 0, y = 18.6, z = 0}, lineOfSight = 50, generationRate = 100, generationSpeed = 10, researchCost = 1, name = 'Lab', colorNodes = {'stripe'}, basePath = PATH .. structurePrefix .. 'Labs/', meshPath = 'aincLab.xml', albedoPath = 'lab.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.LAB, unitType = UnitType.LAND, maxUnevenness = .5, abilityButtons = {{buttonType = ButtonType.ACTIVE_STATE, name = 'Tech tree', guiScreen = 'erTechTree.lua'}}, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 37.7, y = 18.7, z = 42.8}, hitboxOffset = {x = 0, y = 9.6, z = 2.9}, lineOfSight = 50, generationRate = 100, generationSpeed = 10, researchCost = 1, name = 'Lab', colorNodes = {'stripes'}, basePath = PATH .. structurePrefix .. 'Labs/', meshPath = 'erLab.xml', albedoPath = 'lab.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { weapons = { { orderType = OrderType.ATTACK, rateOfFire = 100, damage = 7, maxRange = 100, maxFireAngle = .4, nodes = { {name = 'TurretBody', rotationSpeed = .1, vertical = false}, {name = 'TurretArms', rotationSpeed = .1, angleConstraints = {min = 0, max = 1.1}, vertical = true} }, fireFx = { { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = 1.4, y = -.18, z = 5.4}, rot = {w = 1, x = 0, y = 0, z = 0}, parent = 'LeftBarrel' --scale = .5 }, { vfx = true, duration = 50, mesh = { path = PATH .. vfxPrefix .. 'muzzleFlash.xml', color = {x = 1, y = 1, z = 0, a = 1}, }, pos = {x = -1.4, y = -.18, z = 5.4}, rot = {w = 1, x = 0, y = 0, z = 0}, parent = 'RightBarrel' --scale = .5 }, { vfx = false, duration = 500, path = PATH .. 'Sounds/Units/WarMechs/fire.ogg', }, }, hitFx = {} } }, unitClass = UnitClass.POINT_DEFENSE, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 5, y = 8, z = 5}, hitboxOffset = {x = 0, y = 4, z = 0}, lineOfSight = 55, name = 'Point defense', colorNodes = {'Hoses', 'Hoses.001'}, turretNode = 'TurretBody', basePath = PATH .. structurePrefix .. 'PointDefenses/', meshPath = 'pointDefense2.xml', albedoPath = 'pointDefense.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.EXTRACTOR, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, drawRate = 1, drawSpeed = 5, cost = 500, colorNodes = {'Cube.001'}, hitboxOffset = {x = 0, y = 3, z = 0}, size = {x = 9.72, y = 10.14, z = 9.72}, lineOfSight = 5, name = 'Extractor', basePath = PATH .. structurePrefix .. 'Extractors/', meshPath = 'extractor.xml', albedoPath = 'extractor.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.REFINERY, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, colorNodes = {'chimneys'}, size = {x = 20.2, y = 29.9, z = 31.4}, hitboxOffset = {x = 0, y = 15.1, z = 1.85}, lineOfSight = 5, name = 'Refinery', basePath = PATH .. structurePrefix .. 'Refineries/', meshPath = 'acsRefinery.xml', albedoPath = 'refinery.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.REFINERY, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, colorNodes = {'chimneys'}, size = {x = 32.7, y = 34.1, z = 48.6}, hitboxOffset = {x = 0, y = 15.2, z = 0}, lineOfSight = 5, name = 'Refinery', basePath = PATH .. structurePrefix .. 'Refineries/', meshPath = 'aincRefinery.xml', albedoPath = 'refinery.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.REFINERY, unitType = UnitType.LAND, maxUnevenness = .5, isVehicle = false, health = 500, buildTime = 1000, cost = 500, colorNodes = {'chimneys'}, size = {x = 24.6, y = 27.3, z = 31.4}, hitboxOffset = {x = 0, y = 13.95, z = 3.23}, lineOfSight = 5, name = 'Refinery', basePath = PATH .. structurePrefix .. 'Refineries/', meshPath = 'erRefinery.xml', albedoPath = 'refinery.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, }, { unitClass = UnitClass.ICE_SHEET, unitType = UnitType.SEA_LEVEL, isVehicle = false, health = 1000, size = {x = 7, y = 1.5, z = 7}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Ice sheet', basePath = PATH .. structurePrefix .. 'IceSheets/', meshPath = 'iceSheet.xml', albedoPath = 'iceSheet.jpg', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathFx = {explosionVfx, explosionSfx}, } }