Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Lua WeaponDefs

From Fightorder
Revision as of 09:51, 10 November 2018 by luainter>Gajop
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Development < Lua Scripting < Lua WeaponDefs

The WeaponDefs[] table holds all information about the weapons used in a game.

Works the same way as Lua_UnitDefs except the tables are called WeaponDefs[] and WeaponDefNames[]

Note: Its entries are metatables, so you can't use the pairs() iterator on them, use this instead:

  for id,weaponDef in pairs(WeaponDefs) do
    for name,param in weaponDef:pairs() do
      Spring.Echo(name,param)
    end
  end

Naming

If a unit named "tank" has a weapon named "gun", the resulting name will be "tank_gun" and you can get this weaponDefID like:

local gunID = WeaponDefNames["tank_gun"].id

Example

For a more detailed overview of tag definitions look at Gamedev:WeaponDefs or look directly at the source at https://github.com/spring/spring/blob/5f08624585852b8c8dfd1a16d020ae530269dc09/rts/Sim/Weapons/WeaponLoader.cpp

In key = value format, where WeaponDefs[weaponDefID].key==value, with subtables at the end.

    accuracy = 0,
    avoidFeature = false,
    avoidFriendly = true,
    avoidNeutral = false,
    beamTTL = 0,
    beamburst = false,
    beamtime = 0.10000000149012,
    bouncerebound = 1,
    canAttackGround = true,
    cegTag = "",
    collisionSize = 0.050000000745058,
    coverageRange = 0,
    craterAreaOfEffect = 0,
    cylinderTargeting = 1,
    cylinderTargetting = 1,
    damageAreaOfEffect = 6,
    dance = 0,
    description = "J7Laser",
    duration = 0.050000000745058,
    dynDamageExp = 0,
    dynDamageInverted = false,
    dynDamageMin = 0,
    dynDamageRange = 0,
    edgeEffectiveness = 0.99000000953674,
    energyCost = 0,
    explosionSpeed = 3.233583688736,
    exteriorShield = false,
    fireStarter = 0.69999998807907,
    flightTime = 0,
    gravityAffected = false,
    groundbounce = false,
    groundslip = 1,
    heightBoostFactor = -1,
    heightMod = 1,
    highTrajectory = 2,
    id = 220,
    impactOnly = true,
    intensity = 0.89999997615814,
    interceptSolo = true,
    interceptedByShieldType = 2,
    interceptor = 0,
    isShield = false,
    largeBeamLaser = false,
    laserHardStop = false,
    leadBonus = 0,
    leadLimit = -1,
    manualFire = false,
    maxAngle = 0.95873802900314,
    metalCost = 0,
    minIntensity = 0,
    movingAccuracy = 0,
    myGravity = 0,
    name = "corcom_armcomlaser",
    noAutoTarget = false,
    noEnemyCollide = false,
    noExplode = false,
    noFeatureCollide = false,
    noFriendlyCollide = false,
    noGroundCollide = false,
    noNeutralCollide = false,
    noSelfDamage = true,
    numbounce = -1,
    onlyForward = false,
    paralyzer = false,
    predictBoost = 0,
    projectiles = 1,
    projectilespeed = 30.000001907349,
    proximityPriority = 1,
    range = 300,
    reload = 0.40000000596046,
    salvoDelay = 0.10000000149012,
    salvoSize = 1,
    selfExplode = false,
    shieldAlpha = 0.20000000298023,
    shieldBadColorB = 0.5,
    shieldBadColorG = 0.5,
    shieldBadColorR = 1,
    shieldEnergyUse = 0,
    shieldForce = 0,
    shieldGoodColorB = 1,
    shieldGoodColorG = 0.5,
    shieldGoodColorR = 0.5,
    shieldInterceptType = 0,
    shieldMaxSpeed = 0,
    shieldPower = 0,
    shieldPowerRegen = 0,
    shieldPowerRegenEnergy = 0,
    shieldRadius = 0,
    shieldRechargeDelay = 0,
    shieldRepulser = false,
    size = 2.1875,
    sizeGrowth = 0.5,
    smartShield = false,
    soundTrigger = true,
    sprayAngle = 0,
    startvelocity = 0.0099999997764826,
    stockpile = false,
    stockpileTime = 30,
    sweepFire = false,
    targetBorder = 0,
    targetMoveError = 0.050000000745058,
    targetable = 0,
    tdfId = 0,
    tracks = false,
    trajectoryHeight = 0,
    turnRate = 0,
    turret = true,
    type = "BeamLaser",
    uptime = 0,
    visibleShield = false,
    visibleShieldHitFrames = 0,
    visibleShieldRepulse = false,
    waterWeapon = false,
    waterbounce = false,
    weaponAcceleration = 0,
    wobble = 0,
    customParams = {},
    damages = {
        craterBoost = 0,
        ...
    },
    fireSound = {
        [1] = {
            id = 36,
            name = "lasrfir1",
            volume = 6.1237244606018,
        },
        ...
    },
    hitSound = {
        [1] = {
            id = -1,
            name = "",
            volume = 6.1237244606018,
        },
        ...
    },
    visuals = {
        alphaDecay = 1,
        alwaysVisible = false,
        beamDecay = 1,
        beamWeapon = false,
        color2B = 1,
        color2G = 1,
        color2R = 1,
        colorB = 0,
        colorG = 0,
        colorR = 1,
        coreThickness = 0.10000000149012,
        laserFlareSize = 7,
        modelName = "",
        noGap = true,
        pulseSpeed = 1,
        scrollSpeed = 5,
        separation = 1,
        sizeDecay = 0,
        smokeTrail = false,
        stages = 5,
        thickness = 2,
        tileLength = 200,
    },