--TYPE = {ATTACK = 0, BUILD = 1, MOVE = 2, GARRISON = 3, EJECT = 4, PATROL = 5, LAUNCH = 6}; UnitId = { WAR_MECH = 0, TANK = 1, ARTILLERY = 2, ENGINEER = 3, SCOUT_TRANSPORT = 4, HOVER_TRANSPORT = 5, RESOURCE_ROVER = 6, TACTICAL_CRUISER = 7, DEFENSIVE_CRUISER = 8, CHEAP_CRUISER = 9, TRANSPORT_CRUISER = 10, HEAVY_CARRIER = 11, CHAMPION_CARRIER = 12, MISSILE_SUBMARINE = 13, STEALTH_SUBMARINE = 14, LAND_FACTORY = 15, NAVAL_FACTORY = 16, TRADE_CENTER = 17, LAB = 18, POINT_DEFENSE = 19, EXTRACTOR = 20, REFINERY = 21, FORT = 22 } WeaponClass = {HITSCAN = 0, SHELL = 1, TORPEDO = 2, CRUISE_MISSILE = 3, HACK = 4} UnitClass = { WAR_MECH = 0, TANK = 1, ARTILLERY = 2, ENGINEER = 3, TRANSPORT = 4, RESOURCE_ROVER = 5, CRUISER = 6, CARRIER = 7, SUBMARINE = 8, LAND_FACTORY = 9, NAVAL_FACTORY = 10, TRADE_CENTER = 11, LAB = 12, POINT_DEFENSE = 13, EXTRACTOR = 14, REFINERY = 15, FORT = 16 } UnitType = {UNDERWATER = 0, SEA_LEVEL = 1, HOVER = 2, LAND = 3, AIR = 4} ArmorType = {CAST = 0, COMBINED = 1, MECHANIC = 2, SHELL = 3, STEEL = 4} modelPrefix = "Models/GameObjects/" vehiclePrefix = modelPrefix .. "Units/Vehicles/" structurePrefix = modelPrefix .. "Units/Structures/" units = { { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 100, fireSfx = PATH .. 'Sounds/Units/WarMechs/fire.ogg', damage = 50, maxRange = 10}}, unitClass = UnitClass.WAR_MECH, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2.9, y = 8.22, z = 2.42}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 20, name = 'War mech', basePath = PATH .. vehiclePrefix .. 'WarMechs/', meshPath = 'warMech.xml', selectionSfx = PATH .. 'Sounds/Units/WarMechs/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 1 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 500, fireSfx = PATH .. 'Sounds/Units/Tanks/attack.ogg', damage = 200, maxRange = 25}}, unitClass = UnitClass.TANK, unitType = UnitType.LAND, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2.9, y = 8.22, z = 2.42}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 25, name = 'Tank', basePath = PATH .. vehiclePrefix .. 'Tanks/', meshPath = 'tank.xml', selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 2000, fireSfx = PATH .. 'Sounds/Units/Tanks/attack.ogg', damage = 5000, maxRange = 30}}, unitClass = UnitClass.ARTILLERY, unitType = UnitType.LAND, armor = {ArmorType.MECHANIC}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2.9, y = 8.22, z = 2.42}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 30, name = 'Artillery', basePath = PATH .. vehiclePrefix .. 'Artillery/', meshPath = 'artillery.xml', selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 2 }, { weapons = { {type = WeaponClass.HITSCAN, rateOfFire = 2000, fireSfx = PATH .. 'Sounds/Units/WarMechs/fire.ogg', damage = 20, maxRange = 8}, }, buildableUnits = { {id = UnitId.LAND_FACTORY, buildable = true}, {id = UnitId.NAVAL_FACTORY, buildable = true}, {id = UnitId.TRADE_CENTER, buildable = true}, {id = UnitId.LAB, buildable = true}, {id = UnitId.POINT_DEFENSE, buildable = true}, {id = UnitId.FORT, buildable = false}, }, unitClass = UnitClass.ENGINEER, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, isVehicle = true, health = 500, hackRange = 30, buildTime = 1000, hackTime = 1000, cost = 500, size = {x = 1, y = 8, z = 13.45}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 20, name = 'Engineer', basePath = PATH .. vehiclePrefix .. 'Engineers/', meshPath = 'engineer.xml', guiScreen = 'engineerCommands.lua', selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 2000, fireSfx = PATH .. 'Sounds/Units/WarMechs/fire.ogg', damage = 50, maxRange = 20}}, unitClass = UnitClass.TRANSPORT, unitType = UnitType.HOVER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 8.25, z = 2}, garrisonCapacity = {2, 2, 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Scout transport', basePath = PATH .. vehiclePrefix .. 'Transports/', meshPath = 'scoutTransport.xml', selectionSfx = PATH .. 'Sounds/Units/Transports/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 2000, fireSfx = PATH .. 'Sounds/Units/Tanks/attack.ogg', damage = 100, maxRange = 25}}, unitClass = UnitClass.TRANSPORT, unitType = UnitType.HOVER, armor = {ArmorType.MECHANIC}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, garrisonCapacity = {2, 2, 2}, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Hover transport', basePath = PATH .. vehiclePrefix .. 'Transports/', meshPath = 'hoverTransport.xml', selectionSfx = PATH .. 'Sounds/Units/Transports/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {}, unitClass = UnitClass.RESOURCE_ROVER, unitType = UnitType.HOVER, armor = {ArmorType.CAST}, capacity = 3000, loadRate = 1, loadSpeed = 5, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Cargo ship', basePath = PATH .. vehiclePrefix .. 'Cargoships/', meshPath = 'cargoship.xml', selectionSfx = PATH .. 'Sounds/Units/Cargoships/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 200, fireSfx = PATH .. 'Sounds/Units/Cruisers/fire.ogg', damage = 300, maxRange = 15}}, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Tactical cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'tacticalCruiser.xml', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 200, fireSfx = PATH .. 'Sounds/Units/Cruisers/fire.ogg', damage = 300, maxRange = 15}}, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.CAST}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, garrisonCapacity = {2, 2, 2}, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Defensive cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'defensiveCruiser.xml', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 200, fireSfx = PATH .. 'Sounds/Units/Cruisers/fire.ogg', damage = 300, maxRange = 15}}, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.CAST}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Cheap cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'cheapCruiser.xml', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 200, fireSfx = PATH .. 'Sounds/Units/Cruisers/fire.ogg', damage = 300, maxRange = 15}}, unitClass = UnitClass.CRUISER, unitType = UnitType.SEA_LEVEL, armor = {ArmorType.STEEL, ArmorType.COMBINED}, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Transport cruiser', basePath = PATH .. vehiclePrefix .. 'Cruisers/', meshPath = 'transportCruiser.xml', selectionSfx = PATH .. 'Sounds/Units/Cruisers/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 100, fireSfx = PATH .. 'Sounds/Units/WarMechs/fire.ogg', damage = 80, maxRange = 100}}, unitClass = UnitClass.CARRIER, unitType = UnitType.SEA_LEVEL, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Heavy carrier', basePath = PATH .. vehiclePrefix .. 'Carriers/', meshPath = 'heavyCarrier.xml', selectionSfx = PATH .. 'Sounds/Units/Carriers/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = { {type = WeaponClass.HITSCAN, rateOfFire = 300, fireSfx = PATH .. 'Sounds/Units/Tanks/attack.ogg', damage = 500, maxRange = 100}, { type = WeaponClass.CRUISE_MISSILE, rateOfFire = 500, fireSfx = PATH .. 'Sounds/Units/Submarines/missile.ogg', maxRange = 30, projectile = {id = ProjectileId.CRUISE_MISSILE, pos = {x = 0, y = 1, z = 0}, rot = {w = .707, x = -.707, y = 0, z = 0}} } }, unitClass = UnitClass.CARRIER, unitType = UnitType.SEA_LEVEL, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Champion carrier', basePath = PATH .. vehiclePrefix .. 'Carriers/', meshPath = 'championCarrier.xml', selectionSfx = PATH .. 'Sounds/Units/Carriers/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = { { type = WeaponClass.TORPEDO, rateOfFire = 500, fireSfx = 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}} }, { type = WeaponClass.CRUISE_MISSILE, rateOfFire = 500, fireSfx = PATH .. 'Sounds/Units/Submarines/missile.ogg', maxRange = 30, projectile = {id = ProjectileId.CRUISE_MISSILE, pos = {x = 0, y = 2.44, 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 = 2, y = 8.25, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Missile submarine', basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'missileSubmarine.xml', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { weapons = { { type = WeaponClass.TORPEDO, rateOfFire = 500, fireSfx = 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}} } }, unitClass = UnitClass.SUBMARINE, unitType = UnitType.UNDERWATER, isVehicle = true, health = 500, buildTime = 1000, cost = 500, size = {x = 1, y = 1.15, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Stealth submarine', basePath = PATH .. vehiclePrefix .. 'Submarines/', meshPath = 'stealthSubmarine.xml', selectionSfx = PATH .. 'Sounds/Units/Submarines/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', speed = .1, destinationOffset = .1, anglePrecision = .1, maxTurnAngle = .1, garrisonCategory = 3 }, { buildableUnits = { {id = UnitId.WAR_MECH, buildable = true}, {id = UnitId.TANK, buildable = true}, {id = UnitId.ARTILLERY, buildable = true}, {id = UnitId.RESOURCE_ROVER, buildable = true} }, unitClass = UnitClass.LAND_FACTORY, unitType = UnitType.LAND, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 1, y = 1.15, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Land factory', basePath = PATH .. structurePrefix .. 'LandFactories/', meshPath = 'landFactory.xml', guiScreen = 'landFactoryCommands.lua', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, { unitClass = UnitClass.NAVAL_FACTORY, unitType = UnitType.SEA_LEVEL, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 1, y = 1.15, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Naval factory', basePath = PATH .. structurePrefix .. 'NavalFactories/', meshPath = 'navalFactory.xml', guiScreen = 'navalFactoryCommands.lua', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, { unitClass = UnitClass.TRADE_CENTER, unitType = UnitType.LAND, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 1, y = 1.15, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Trade center', basePath = PATH .. structurePrefix .. 'TradeCenters/', meshPath = 'tradeCenter.xml', guiScreen = 'tradingCenterCommands.lua', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, { unitClass = UnitClass.LAB, unitType = UnitType.LAND, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 1, y = 1.15, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, generationRate = 100, generationSpeed = 10, researchCost = 1, name = 'Lab', basePath = PATH .. structurePrefix .. 'Labs/', meshPath = 'lab.xml', guiScreen = 'researchStructCommands.lua', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, { weapons = {{type = WeaponClass.HITSCAN, rateOfFire = 100, fireSfx = PATH .. 'Sounds/Units/WarMechs/fire.ogg', damage = 50, maxRange = 50}}, unitClass = UnitClass.POINT_DEFENSE, unitType = UnitType.LAND, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 2, y = 10, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 55, name = 'Point defense', basePath = PATH .. structurePrefix .. 'PointDefenses/', meshPath = 'pointDefense.xml', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, { unitClass = UnitClass.EXTRACTOR, unitType = UnitType.LAND, isVehicle = false, health = 500, buildTime = 1000, drawRate = 1, drawSpeed = 5, cost = 500, size = {x = 4, y = 1.15, z = 4}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Extractor', basePath = PATH .. structurePrefix .. 'Extractors/', meshPath = 'extractor.xml', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, { unitClass = UnitClass.REFINERY, unitType = UnitType.LAND, isVehicle = false, health = 500, buildTime = 1000, cost = 500, size = {x = 1, y = 1.15, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Refinery', basePath = PATH .. structurePrefix .. 'Refineries/', meshPath = 'refinery.xml', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, { buildableUnits = {{id = UnitId.ENGINEER, buildable = true}}, unitClass = UnitClass.FORT, unitType = UnitType.LAND, isVehicle = false, health = 1000, buildTime = 1000, cost = 1000, size = {x = 1, y = 1.15, z = 2}, hitboxOffset = {x = 0, y = 0, z = 0}, lineOfSight = 5, name = 'Fort', basePath = PATH .. structurePrefix .. 'Forts/', meshPath = 'fort.xml', guiScreen = 'fortCommands.lua', selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg', deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg', }, }