Files
PlanetFleet/Assets/Scripts/GameObjects/Units/unitData.lua
T
2024-02-16 16:22:58 +02:00

567 lines
17 KiB
Lua

--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,
MARKET = 17,
LAB = 18,
POINT_DEFENSE = 19,
EXTRACTOR = 20,
REFINERY = 21,
FORT = 22
}
WeaponClass = {HITSCAN = 0, SHELL = 1, TORPEDO = 2, CRUISE_MISSILE = 3}
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,
MARKET = 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 = {},
unitClass = UnitClass.ENGINEER,
unitType = UnitType.HOVER,
armor = {ArmorType.MECHANIC},
isVehicle = true,
health = 500,
buildTime = 1000,
cost = 500,
size = {x = 1, y = 8, z = 13.45},
hitboxOffset = {x = 0, y = 0, z = 0},
lineOfSight = 5,
name = 'Engineer',
basePath = PATH .. vehiclePrefix .. 'Engineers/',
meshPath = 'engineer.xml',
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
},
{
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',
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',
selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg',
deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg',
},
{
unitClass = UnitClass.MARKET,
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 = 'Market',
basePath = PATH .. structurePrefix .. 'Markets/',
meshPath = 'market.xml',
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,
name = 'Lab',
basePath = PATH .. structurePrefix .. 'Labs/',
meshPath = 'lab.xml',
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',
},
{
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',
selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg',
deathSfx = PATH .. 'Sounds/SFX/Explosions/explosion01.ogg',
},
}