mirror of
https://github.com/ApfelTeeSaft/PlanetFleet.git
synced 2026-08-26 19:33:38 +00:00
1139 lines
29 KiB
Lua
1139 lines
29 KiB
Lua
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 = {
|
|
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,
|
|
ICEBREAKER = 15,
|
|
FREEZER = 16,
|
|
EMP_BOAT = 17,
|
|
LAND_FACTORY = 18,
|
|
NAVAL_FACTORY = 19,
|
|
TRADE_CENTER = 20,
|
|
LAB = 21,
|
|
POINT_DEFENSE = 22,
|
|
EXTRACTOR = 23,
|
|
REFINERY = 24,
|
|
FORT = 25,
|
|
ICE_SHEET = 26
|
|
}
|
|
WeaponClass = {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,
|
|
FORT = 19,
|
|
ICE_SHEET = 20
|
|
}
|
|
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},
|
|
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 = 'War mech',
|
|
basePath = PATH .. vehiclePrefix .. 'WarMechs/',
|
|
meshPath = 'warMech.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 = 1000,
|
|
damage = 200,
|
|
maxRange = 25,
|
|
horizontalNode = {name = 'Turret', rotationSpeed = .05, maxFireAngle = .1},
|
|
projectile = {id = ProjectileId.HE_SHELL, parent = 'Turret', pos = {x = 0.06, 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 = 'CannonBarrel',
|
|
pos = {x = 0.06, y = 5.82, z = 11.4},
|
|
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},
|
|
isVehicle = true,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 9.57, y = 7, z = 20.1},
|
|
hitboxOffset = {x = 0, y = 3, z = 1.06},
|
|
lineOfSight = 25,
|
|
name = 'Tank',
|
|
basePath = PATH .. vehiclePrefix .. 'Tanks/',
|
|
meshPath = 'tank2.xml',
|
|
albedoPath = 'tank.jpg',
|
|
colorNodes = {'Antenna_S', 'Antenna_L', 'Hatch'},
|
|
selectionSfx = PATH .. 'Sounds/Units/Tanks/selection.ogg',
|
|
speed = .1,
|
|
destinationOffset = .1,
|
|
anglePrecision = .1,
|
|
maxTurnAngle = .1,
|
|
garrisonCategory = 2,
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
weapons = {
|
|
{
|
|
orderType = OrderType.ATTACK,
|
|
rateOfFire = 2000,
|
|
damage = 5000,
|
|
maxRange = 70,
|
|
horizontalNode = {name = 'turret', rotationSpeed = .05, maxFireAngle = .1},
|
|
verticalNode = {name = 'tubes', rotationSpeed = .05, maxFireAngle = .1},
|
|
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},
|
|
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 = .1,
|
|
destinationOffset = .1,
|
|
anglePrecision = .1,
|
|
maxTurnAngle = .1,
|
|
garrisonCategory = 2,
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
weapons = {
|
|
{
|
|
orderType = OrderType.HACK,
|
|
rateOfFire = 100,
|
|
maxRange = 150,
|
|
damage = 0,
|
|
}
|
|
},
|
|
buildableUnits = {
|
|
{id = UnitId.LAND_FACTORY, buildable = true, trigger = 76},
|
|
{id = UnitId.NAVAL_FACTORY, buildable = true, trigger = 78},
|
|
{id = UnitId.TRADE_CENTER, buildable = true, trigger = 77},
|
|
{id = UnitId.LAB, buildable = true, trigger = 84},
|
|
{id = UnitId.POINT_DEFENSE, buildable = true, trigger = 80},
|
|
{id = UnitId.FORT, buildable = true, trigger = 70},
|
|
{id = UnitId.EXTRACTOR, buildable = true, trigger = 69},
|
|
{id = UnitId.REFINERY, buildable = true, trigger = 82},
|
|
},
|
|
abilityButtons = {{buttonType = ButtonType.ORDER, name = 'Hack', orderType = OrderType.HACK}},
|
|
unitClass = UnitClass.ENGINEER,
|
|
unitType = UnitType.HOVER,
|
|
armor = {ArmorType.MECHANIC},
|
|
isVehicle = true,
|
|
health = 500,
|
|
hackRange = 200,
|
|
buildTime = 1000,
|
|
hackTime = 1000,
|
|
cost = 500,
|
|
size = {x = 1, y = 8, z = 1},
|
|
hitboxOffset = {x = 0, y = 0, z = 0},
|
|
lineOfSight = 200,
|
|
name = 'Engineer',
|
|
basePath = PATH .. vehiclePrefix .. 'Engineers/',
|
|
albedoPath = 'engineer.jpg',
|
|
colorNodes = {'Cube.008'},
|
|
meshPath = 'engineer2.xml',
|
|
selectionSfx = PATH .. 'Sounds/Units/Engineers/selection.ogg',
|
|
speed = .5,
|
|
destinationOffset = .1,
|
|
anglePrecision = .1,
|
|
maxTurnAngle = .1,
|
|
garrisonCategory = 3,
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
unitClass = UnitClass.TRANSPORT,
|
|
unitType = UnitType.HOVER,
|
|
isVehicle = true,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 21, y = 17.5, z = 56.6},
|
|
garrisonCapacity = {2, 2, 2},
|
|
hitboxOffset = {x = 0, y = 0, z = 0},
|
|
lineOfSight = 5,
|
|
colorNodes = {'TransportTemplateOBJ.001'},
|
|
albedoPath = 'transport.jpg',
|
|
name = 'Scout transport',
|
|
basePath = PATH .. vehiclePrefix .. 'Transports/',
|
|
meshPath = 'scoutTransport.xml',
|
|
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 = 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 = 17.5, y = 16.5, z = 63.5},
|
|
hitboxOffset = {x = 0, y = 0, z = 0},
|
|
lineOfSight = 5,
|
|
colorNodes = {'Cube.002'},
|
|
name = 'Hover transport',
|
|
basePath = PATH .. vehiclePrefix .. 'Transports/',
|
|
meshPath = 'hoverTransport.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},
|
|
capacity = 3000,
|
|
loadRate = 1,
|
|
loadSpeed = 5,
|
|
isVehicle = true,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 3.29, y = 2.23, z = 9.5},
|
|
hitboxOffset = {x = 0, y = .37, z = 0},
|
|
lineOfSight = 5,
|
|
name = 'Cargo ship',
|
|
colorNodes = {'CargoshipTemplateOBJ.001'},
|
|
basePath = PATH .. vehiclePrefix .. 'Cargoships/',
|
|
meshPath = 'cargoship.xml',
|
|
albedoPath = 'cargoship.jpg',
|
|
selectionSfx = PATH .. 'Sounds/Units/Cargoships/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,
|
|
fireFx = {
|
|
{
|
|
vfx = true,
|
|
duration = 50,
|
|
mesh = {
|
|
size = {x = .16, y = .16},
|
|
color = {x = 1, y = 0, z = 0, a = 1},
|
|
},
|
|
pos = {x = 0., y = 2.8, z = -.1},
|
|
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 = 18.8, y = 17.5, z = 52.6},
|
|
hitboxOffset = {x = 0, y = 1.9, z = 0},
|
|
lineOfSight = 5,
|
|
colorNodes = {'tacticalCruiser.001'},
|
|
name = 'Tactical cruiser',
|
|
basePath = PATH .. vehiclePrefix .. 'Cruisers/',
|
|
meshPath = 'tacticalCruiser.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,
|
|
fireFx = {
|
|
{
|
|
vfx = true,
|
|
duration = 50,
|
|
mesh = {
|
|
size = {x = .16, y = .16},
|
|
color = {x = 1, y = 0, z = 0, a = 1},
|
|
},
|
|
pos = {x = 0., y = 2.8, z = -.1},
|
|
rot = {w = 1, x = 0, y = 0, z = 0},
|
|
--scale = .5
|
|
},
|
|
{
|
|
vfx = false,
|
|
duration = 50,
|
|
path = 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 = 17, y = 17, z = 45.1},
|
|
hitboxOffset = {x = 0, y = 3.78, z = 0},
|
|
lineOfSight = 5,
|
|
colorNodes = {'defensiveCruiser.001'},
|
|
name = 'Defensive cruiser',
|
|
basePath = PATH .. vehiclePrefix .. 'Cruisers/',
|
|
meshPath = 'defensiveCruiser.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 = 300,
|
|
maxRange = 15,
|
|
fireFx = {
|
|
{
|
|
vfx = true,
|
|
duration = 50,
|
|
mesh = {
|
|
size = {x = .16, y = .16},
|
|
color = {x = 1, y = 0, z = 0, a = 1},
|
|
},
|
|
pos = {x = 0., y = 2.8, z = -.1},
|
|
rot = {w = 1, x = 0, y = 0, z = 0},
|
|
--scale = .5
|
|
},
|
|
{
|
|
vfx = false,
|
|
duration = 50,
|
|
path = PATH .. 'Sounds/Units/Cruisers/fire.ogg',
|
|
}
|
|
},
|
|
}
|
|
},
|
|
unitClass = UnitClass.CRUISER,
|
|
unitType = UnitType.SEA_LEVEL,
|
|
armor = {ArmorType.CAST},
|
|
isVehicle = true,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 21.1, y = 18.1, z = 28.6},
|
|
hitboxOffset = {x = 0, y = 4.19, z = 0},
|
|
lineOfSight = 5,
|
|
colorNodes = {'cheapCruiser.001'},
|
|
name = 'Cheap cruiser',
|
|
basePath = PATH .. vehiclePrefix .. 'Cruisers/',
|
|
meshPath = 'cheapCruiser.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,
|
|
fireSfx = PATH .. 'Sounds/Units/Cruisers/fire.ogg',
|
|
damage = 300,
|
|
maxRange = 15,
|
|
fireFx = {
|
|
{
|
|
vfx = true,
|
|
duration = 50,
|
|
mesh = {
|
|
size = {x = .16, y = .16},
|
|
color = {x = 1, y = 0, z = 0, a = 1},
|
|
},
|
|
pos = {x = 0., y = 2.8, z = -.1},
|
|
rot = {w = 1, x = 0, y = 0, z = 0},
|
|
--scale = .5
|
|
},
|
|
{
|
|
vfx = false,
|
|
duration = 50,
|
|
path = PATH .. 'Sounds/Units/Cruisers/fire.ogg',
|
|
}
|
|
}
|
|
}
|
|
},
|
|
unitClass = UnitClass.CRUISER,
|
|
unitType = UnitType.SEA_LEVEL,
|
|
armor = {ArmorType.STEEL, ArmorType.COMBINED},
|
|
isVehicle = true,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 17.9, y = 14.9, z = 45.6},
|
|
hitboxOffset = {x = 0, y = 2.98, z = 1.21},
|
|
lineOfSight = 5,
|
|
colorNodes = {'transportCruiser.001'},
|
|
name = 'Transport cruiser',
|
|
basePath = PATH .. vehiclePrefix .. 'Cruisers/',
|
|
meshPath = 'transportCruiser.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 = 100,
|
|
damage = 80,
|
|
maxRange = 100,
|
|
fireFx = {
|
|
{
|
|
vfx = true,
|
|
duration = 50,
|
|
mesh = {
|
|
size = {x = .16, y = .16},
|
|
color = {x = 1, y = 0, z = 0, a = 1},
|
|
},
|
|
pos = {x = 0., y = 2.8, z = -.1},
|
|
rot = {w = 1, x = 0, y = 0, z = 0},
|
|
--scale = .5
|
|
},
|
|
{
|
|
vfx = false,
|
|
duration = 50,
|
|
path = PATH .. 'Sounds/Units/Cruisers/fire.ogg',
|
|
}
|
|
}
|
|
}
|
|
},
|
|
unitClass = UnitClass.CARRIER,
|
|
unitType = UnitType.SEA_LEVEL,
|
|
isVehicle = true,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 37.8, y = 16.7, z = 87},
|
|
hitboxOffset = {x = 0, y = 6.38, z = 0},
|
|
lineOfSight = 5,
|
|
name = 'Heavy carrier',
|
|
colorNodes = {'heavyCarrier.001'},
|
|
basePath = PATH .. vehiclePrefix .. 'Carriers/',
|
|
meshPath = 'heavyCarrier.xml',
|
|
albedoPath = 'carrier.jpg',
|
|
selectionSfx = PATH .. 'Sounds/Units/Carriers/selection.ogg',
|
|
speed = .1,
|
|
destinationOffset = .1,
|
|
anglePrecision = .1,
|
|
maxTurnAngle = .1,
|
|
garrisonCategory = 3,
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
weapons = {
|
|
{
|
|
orderType = OrderType.ATTACK,
|
|
rateOfFire = 450,
|
|
damage = 500,
|
|
maxRange = 100,
|
|
fireFx = {
|
|
{
|
|
vfx = true,
|
|
duration = 50,
|
|
mesh = {
|
|
path = PATH .. vfxPrefix .. 'muzzleFlash.xml',
|
|
color = {x = 1, y = 1, z = 0, a = 1},
|
|
},
|
|
pos = {x = 0, y = 3.17, z = -1.5},
|
|
rot = {w = 1, x = 0, y = 0, z = 0},
|
|
--scale = .5
|
|
},
|
|
{
|
|
vfx = false,
|
|
duration = 300,
|
|
path = PATH .. 'Sounds/Units/Tanks/attack.ogg',
|
|
}
|
|
},
|
|
unitHitFx = {explosionVfx, explosionSfx},
|
|
waterHitFx = {explosionVfx, explosionSfx}
|
|
},
|
|
{
|
|
orderType = OrderType.LAUNCH,
|
|
projectile = {id = ProjectileId.CRUISE_MISSILE, pos = {x = 0, y = 15, z = 0}, rot = {w = .707, x = -.707, y = 0, z = 0}},
|
|
rateOfFire = 500,
|
|
maxRange = 30,
|
|
fireFx = {
|
|
{
|
|
vfx = false,
|
|
duration = 2500,
|
|
path = PATH .. 'Sounds/Units/Submarines/missile.ogg',
|
|
}
|
|
},
|
|
}
|
|
},
|
|
unitClass = UnitClass.CARRIER,
|
|
unitType = UnitType.SEA_LEVEL,
|
|
isVehicle = true,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 26, y = 21.1, z = 81.8},
|
|
hitboxOffset = {x = 0, y = 4.13, z = 0},
|
|
lineOfSight = 5,
|
|
name = 'Champion carrier',
|
|
colorNodes = {'Models4.001'},
|
|
basePath = PATH .. vehiclePrefix .. 'Carriers/',
|
|
meshPath = 'championCarrier.xml',
|
|
albedoPath = 'carrier.jpg',
|
|
selectionSfx = PATH .. 'Sounds/Units/Carriers/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 = 14.1, y = 29.2, z = 59.5},
|
|
hitboxOffset = {x = 0, y = 6.7, z = 0},
|
|
lineOfSight = 50,
|
|
name = 'Missile submarine',
|
|
basePath = PATH .. vehiclePrefix .. 'Submarines/',
|
|
meshPath = 'missileSubmarine.xml',
|
|
albedoPath = 'submarine.jpg',
|
|
colorNodes = {'missileSubmarine.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 = 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.25, z = 0},
|
|
size = {x = 10.7, y = 15.4, z = 50},
|
|
lineOfSight = 5,
|
|
name = 'Stealth submarine',
|
|
colorNodes = {'stealthSubmarine.001'},
|
|
basePath = PATH .. vehiclePrefix .. 'Submarines/',
|
|
meshPath = 'stealthSubmarine.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 = 12.6, y = 8.5, z = 32.8},
|
|
hitboxOffset = {x = 0, y = 2.07, z = .8},
|
|
lineOfSight = 25,
|
|
name = 'Icebreaker',
|
|
--colorNodes = {'stealthSubmarine.001'},
|
|
basePath = PATH .. vehiclePrefix .. 'Icebreakers/',
|
|
meshPath = 'icebreaker.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 = 10,
|
|
damage = 0,
|
|
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 = 8.5, y = 6.3, z = 17.6},
|
|
hitboxOffset = {x = 0, y = 1.6, z = 0},
|
|
lineOfSight = 25,
|
|
name = 'Freezer',
|
|
--colorNodes = {'stealthSubmarine.001'},
|
|
basePath = PATH .. vehiclePrefix .. 'Freezers/',
|
|
meshPath = 'freezer.xml',
|
|
albedoPath = 'freezer.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,
|
|
rateOfFire = 1000,
|
|
damage = 0,
|
|
maxRange = 25,
|
|
horizontalNode = {name = 'turret', rotationSpeed = .05, maxFireAngle = .1},
|
|
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 = 4.75, y = 5.15, z = 19.55},
|
|
hitboxOffset = {x = 0, y = .18, z = .25},
|
|
lineOfSight = 25,
|
|
name = 'EMP boat',
|
|
--colorNodes = {'stealthSubmarine.001'},
|
|
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.WAR_MECH, buildable = true, trigger = 87},
|
|
{id = UnitId.TANK, buildable = true, trigger = 84},
|
|
{id = UnitId.ARTILLERY, buildable = true, trigger = 65},
|
|
{id = UnitId.RESOURCE_ROVER, buildable = true, trigger = 82}
|
|
},
|
|
unitClass = UnitClass.LAND_FACTORY,
|
|
unitType = UnitType.LAND,
|
|
isVehicle = false,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 21.6, y = 11.9, z = 25.4},
|
|
hitboxOffset = {x = 0, y = 1.02, z = .95},
|
|
lineOfSight = 5,
|
|
colorNodes = {'Cube.001'},
|
|
name = 'Land factory',
|
|
albedoPath = 'factory.jpg',
|
|
basePath = PATH .. structurePrefix .. 'LandFactories/',
|
|
meshPath = 'landFactory.xml',
|
|
selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg',
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
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',
|
|
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}
|
|
},
|
|
isVehicle = false,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 8.53, y = 51.9, z = 8.53},
|
|
hitboxOffset = {x = 0, y = .97, z = 0},
|
|
lineOfSight = 5,
|
|
colorNodes = {'Cube.001'},
|
|
name = 'Trade center',
|
|
basePath = PATH .. structurePrefix .. 'TradeCenters/',
|
|
meshPath = 'tradeCenter.xml',
|
|
albedoPath = 'tradeCenter.jpg',
|
|
selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg',
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
unitClass = UnitClass.LAB,
|
|
unitType = UnitType.LAND,
|
|
abilityButtons = {{buttonType = ButtonType.ACTIVE_GAME_STATE, name = 'Tech tree', guiScreen = 'techTree.lua'}},
|
|
isVehicle = false,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
size = {x = 40, y = 26.2, z = 40},
|
|
hitboxOffset = {x = 0, y = 14, z = 0},
|
|
lineOfSight = 50,
|
|
generationRate = 100,
|
|
generationSpeed = 10,
|
|
researchCost = 1,
|
|
name = 'Lab',
|
|
colorNodes = {'Cube.008'},
|
|
basePath = PATH .. structurePrefix .. 'Labs/',
|
|
meshPath = 'lab2.xml',
|
|
albedoPath = 'lab.jpg',
|
|
selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg',
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
weapons = {
|
|
{
|
|
orderType = OrderType.ATTACK,
|
|
rateOfFire = 100,
|
|
damage = 50,
|
|
maxRange = 50,
|
|
horizontalNode = {name = 'TurretBody', rotationSpeed = .05, maxFireAngle = .1},
|
|
--verticalNode = {name = 'TurretArms', rotationSpeed = .05, maxFireAngle = .1},
|
|
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,
|
|
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,
|
|
isVehicle = false,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
drawRate = 1,
|
|
drawSpeed = 5,
|
|
cost = 500,
|
|
colorNodes = {'Cube.001'},
|
|
hitboxOffset = {x = 0, y = 1, z = 0},
|
|
size = {x = 3.24, y = 3.38, z = 3.24},
|
|
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,
|
|
isVehicle = false,
|
|
health = 500,
|
|
buildTime = 1000,
|
|
cost = 500,
|
|
colorNodes = {'Cube.001'},
|
|
size = {x = 15.1, y = 13.5, z = 25},
|
|
hitboxOffset = {x = 0, y = 1.05, z = 1.85},
|
|
lineOfSight = 5,
|
|
name = 'Refinery',
|
|
basePath = PATH .. structurePrefix .. 'Refineries/',
|
|
meshPath = 'refinery.xml',
|
|
albedoPath = 'refinery.jpg',
|
|
selectionSfx = PATH .. 'Sounds/Units/Sample/selection.ogg',
|
|
deathFx = {explosionVfx, explosionSfx},
|
|
},
|
|
{
|
|
buildableUnits = {{id = UnitId.ENGINEER, buildable = true, trigger = 69}},
|
|
unitClass = UnitClass.FORT,
|
|
unitType = UnitType.LAND,
|
|
isVehicle = false,
|
|
health = 1000,
|
|
buildTime = 1000,
|
|
cost = 1000,
|
|
size = {x = 43.3, y = 50, z = 43.3},
|
|
hitboxOffset = {x = 0, y = .8, z = 0},
|
|
lineOfSight = 5,
|
|
name = 'Fort',
|
|
basePath = PATH .. structurePrefix .. 'Forts/',
|
|
meshPath = 'fort2.xml',
|
|
colorNodes = {'Cube.004'},
|
|
albedoPath = 'fort.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},
|
|
},
|
|
}
|