-----------------------------------------------------------------------------
--  File     : /units/UAL0108/UAL0108_unit.bp
--
--  Author(s): EbolaSoup, Resin Smoker, Optimus Prime, Vissroid 
--
--  Summary  : Aeon light assault walker 
--
--  Copyright © 2010 4DC_V0.8  All rights reserved.
-----------------------------------------------------------------------------
UnitBlueprint {
    AI = {
        TargetBones = {
            'bodyBase',
        },
    },
    Audio = {
        AmbientMove = Sound {
            Bank = 'UAL',
            Cue = 'UAL0106_Move_Loop',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        Destroyed = Sound {
            Bank = 'UALDestroy',
            Cue = 'UAL_Destroy_Land',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        EnhanceEnd = Sound {
            Bank = 'UnitsGlobal',
            Cue = 'GLB_Enhance_Stop',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        EnhanceFail = Sound {
            Bank = 'UnitsGlobal',
            Cue = 'GLB_Enhance_Fail',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        EnhanceLoop = Sound {
            Bank = 'UnitsGlobal',
            Cue = 'GLB_Enhance_Loop',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        EnhanceStart = Sound {
            Bank = 'UnitsGlobal',
            Cue = 'GLB_Enhance_Start',
            LodCutoff = 'UnitMove_LodCutoff',
        }, 
        ShieldOff = Sound {
            Bank = 'UAL',
            Cue = 'UAL0202_Shield_Off',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        ShieldOn = Sound {
            Bank = 'UAL',
            Cue = 'UAL0202_Shield_On',
            LodCutoff = 'UnitMove_LodCutoff',
        },               
        StartMove = Sound {
            Bank = 'UAL',
            Cue = 'UAL0106_Move_Start',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        StopMove = Sound {
            Bank = 'UAL',
            Cue = 'UAL0106_Move_Stop',
            LodCutoff = 'UnitMove_LodCutoff',
        },
        UISelection = Sound {
            Bank = 'Interface',
            Cue = 'Aeon_Select_Bot',
            LodCutoff = 'UnitMove_LodCutoff',
        },
    },
    Buffs = {
        Regen = {
            Level1 = 1,
            Level2 = 2,
            Level3 = 3,
            Level4 = 4,
            Level5 = 5,
        },
    },
    BuildIconSortPriority = 30,
    Categories = {
        'MODCONTENT4D',    
        'AEON',
        'BOT',
        'BUILTBYTIER1FACTORY',
        'BUILTBYTIER2FACTORY',
        'BUILTBYTIER3FACTORY',
        'DIRECTFIRE',
        'LAND',
        'MOBILE',
        'OVERLAYDIRECTFIRE',
        'OVERLAYINDIRECTFIRE',        
        'RECLAIMABLE',
        'SELECTABLE',
        'SHIELD',        
        'TECH1',
        'VISIBLETORECON',
    },
    Defense = {
        AirThreatLevel = 0,
        ArmorType = 'Normal',
        EconomyThreatLevel = 0,
        Health = 350,
        MaxHealth = 350,
        RegenRate = 0,
        SubThreatLevel = 0,
        SurfaceThreatLevel = 10,
        ThreatLevel = 10,          
    },
    Description = 'Light Assault Walker',  
        Display = {
        Abilities = {
            'Customizable',
        },
        AnimationDeath = {
            {
            -- Knocked back and falls forward
                Animation = '/mods/4DC_V0.8/units/ual0108/ual0108_Adeath01.sca',
                AnimationRateMax = 1.75,
                AnimationRateMin = 1.15,
                Weight = 30,
            },
            {
            -- Knocked into the air and lands on head
                Animation = '/mods/4DC_V0.8/units/ual0108/ual0108_Adeath02.sca',
                AnimationRateMax = 1.25,
                AnimationRateMin = 0.75,
                Weight = 20,
            },
            {
            -- Collapses in a heap
                Animation = '/mods/4DC_V0.8/units/ual0108/ual0108_Adeath03.sca',
                AnimationRateMax = 1.15,
                AnimationRateMin = 0.75,
                Weight = 40,
            },
            {
            -- Head knocked into the air and lands on unit.
            -- Max and Min rate shouldn't vary too much because bodies in freefall would not vary given constant gravity.
                Animation = '/mods/4DC_V0.8/units/ual0108/ual0108_Adeath04.sca',
                AnimationRateMax = 1.45,
                AnimationRateMin = 1.35,
                Weight = 10,
            },
        },
        AnimationWalk = '/mods/4DC_V0.8/units/ual0108/ual0108_awalk01.sca',
        AnimationWalkRate = 1.3,
        Mesh = {
            IconFadeInZoom = 130,
            LODs = {
                {
                    LODCutoff = 215,
                    Scrolling = false,                     
                    ShaderName = 'Aeon',
                },
            },
        },
        MovementEffects = {
            Land = {
                Effects = {
                    {
                        Bones = {
                            'LeftFoot',
                            'RightFoot',
                            'RearFoot',
                        },
                        Type = 'GroundKickup01',
                    },
                },
            },
        },
        PlaceholderMeshName = 'UXB0000',
        SpawnRandomRotation = true,
        UniformScale = 0.07,
    },
    Economy = {
        BuildCostEnergy = 600,
        BuildCostMass = 120,
        BuildRate = 5,  -- T1 Engineer BuildRate        
        BuildTime = 500,
        TeleportEnergyMod = 0.15,
        TeleportMassMod = 1,
        TeleportTimeMod = 0.01,
    },
    Enhancements = {
        Slots = {
            Back = {
                name = '<LOC _Back>',
                x = -2,
                y = -5,
            },
        },    
        PersonalShield = {
            BuildCostEnergy = 200,
            BuildCostMass = 40,
            BuildTime = 167,
            Icon = 'ptsg',
            ImpactEffects = 'AeonShieldHit01',
            MaintenanceConsumptionPerSecondEnergy = 5,
            Name = '<LOC enhancements_0014>Personal Shield Generator',
            OwnerShieldMesh = '/mods/4DC_V0.8/units/UAL0108/UAL0108_PersonalShield_mesh',
            RegenAssistMult = 10,
            ShieldEnergyDrainRechargeTime = 5,
            ShieldMaxHealth = 150,
            ShieldRechargeTime = 5,
            ShieldRegenRate = 10,
            ShieldRegenStartTime = 0.1,
            Slot = 'Back',
            UpgradeUnitAmbientBones = {
                'bodyBase',
            },
            UpgradeEffectBones = {
                'bodyBase',
            },
        },
        PersonalShieldRemove = {
            BuildCostEnergy = 1,
            BuildCostMass = 1,
            BuildTime = 0.1,
            Icon = 'ptsg',
            Name = '<LOC enhancements_0017>Remove Personal Shield',
            Prerequisite = 'Shield',
            RemoveEnhancements = {
                'PersonalShield',
                'PersonalShieldRemove',
            },
            Slot = 'Back',
        },
    },    
    General = {
        Category = 'Direct Fire',
        Classification = 'RULEUC_MilitaryVehicle',
        CommandCaps = {
            RULEUCC_Attack = true,
            RULEUCC_CallTransport = true,
            RULEUCC_Capture = false,
            RULEUCC_Guard = true,
            RULEUCC_Move = true,
            RULEUCC_Nuke = false,
            RULEUCC_Patrol = true,
            RULEUCC_Reclaim = false,
            RULEUCC_Repair = false,
            RULEUCC_RetaliateToggle = true,
            RULEUCC_Stop = true,
            RULEUCC_Transport = false,
        },
        FactionName = 'Aeon',
        Icon = 'land',
        TechLevel = 'RULEUTL_Basic',
        UnitName = 'Artemis',
        UnitWeight = 1,
    },
    Intel = {
        VisionRadius = 22,
    },
    Interface = {
        HelpText = '<LOC ual0108_help>Medium Assault Walker',
    },
    LifeBarHeight = 0.07,
    LifeBarOffset = 0.7,
    LifeBarSize = 0.45,
    Physics = {
        BankingSlope = 0,
        BuildOnLayerCaps = {
            LAYER_Air = false,
            LAYER_Land = true,
            LAYER_Orbit = false,
            LAYER_Seabed = false,
            LAYER_Sub = false,
            LAYER_Water = false,
        },
        DragCoefficient = 0.2,
        MaxAcceleration = 1.6,
        MaxBrake = 1.0,
        MaxSpeed = 2.3,
        MaxSpeedReverse = 0,
        MaxSteerForce = 7,
        MinSpeedPercent = 0,
        MotionType = 'RULEUMT_Land',
        RotateBodyWhileMoving = true,
        RotateOnSpot = false,
        StandUpright = false,
        TurnFacingRate = 180,
        TurnRadius = 2,
        TurnRate = 60,
    },
    SelectionCenterOffsetX = 0,
    SelectionCenterOffsetZ = 0.1,
    SelectionSizeX = 0.75,
    SelectionSizeZ = 0.75,
    SelectionThickness = 0.6,
    SizeX = 0.4,
    SizeY = 1.5, 
    SizeZ = 0.6,
    StrategicIconName = 'icon_bot1_directfire',
    ModIconName = '4dc',      
    StrategicIconSortPriority = 135,
    Transport = {
        CanFireFromTransport = false,
    },
    Veteran = {
        Level1 = 3,
        Level2 = 6,
        Level3 = 9,
        Level4 = 12,
        Level5 = 15,
    },
    Weapon = {
        {
            AboveWaterTargetsOnly = true,
            Audio = {
                Fire = Sound {
                    Bank = 'UAAWeapon',
                    Cue = 'UAA0203_Laser_Lgt',
                    LodCutoff = 'Weapon_LodCutoff',
                },
            },
            BallisticArc = 'RULEUBA_LowArc',
            CollideFriendly = false,
            Damage = 25,
            DamageRadius = 0,
            DamageType = 'Normal',
            DisplayName = 'Light Pulse Laser',
            FireTargetLayerCapsTable = {
                Land = 'Land|Water',
            },
            FiringRandomness = 0.5,
            FiringRandomnessWhileMoving = 1.0,
            FiringTolerance = 2,
            Label = 'MainGun',
            MaxRadius = 18,
            MuzzleSalvoDelay = 0.2,
            MuzzleSalvoSize = 5,
            MuzzleVelocity = 30,
            ProjectileId = '/projectiles/ADFLaserLight01/ADFLaserLight01_proj.bp',
            ProjectileLifetimeUsesMultiplier = 1.15,
            ProjectilesPerOnFire = 5,
           
            RackBones = {
                {
                    MuzzleBones = {
                        'turretMuzzle',
                    },
                    RackBone = 'turretBarrel',
                },
            },
            RangeCategory = 'UWRC_DirectFire',
            RackFireTogether = false,
            RackRecoilDistance = 0,
            RackReloadTimeout = 0,
            RackSalvoChargeTime = 0,
            RackSalvoReloadTime = 0,
            RackSalvoSize = 1,
            RackSlavedToTurret = false,
            RateOfFire = 0.4,
            SlavedToBody = false,
            TargetCheckInterval = 0.6,
            TargetPriorities = {
                'SPECIALHIGHPRI',
                'TECH1 MOBILE',
                'TECH2 MOBILE',
                'TECH3 MOBILE',
                'STRUCTURE DEFENSE',
                'SPECIALLOWPRI',
                'ALLUNITS',
            },
            TrackingRadius = 1.1,
            TargetRestrictDisallow = 'UNTARGETABLE',
            TurretBoneMuzzle = 'turretMuzzle',
            TurretBonePitch = 'bodyTop',
            TurretBoneYaw = 'bodyTop',
            TurretDualManipulators = false,
            TurretPitch = 0,
            TurretPitchRange = 15,
            TurretPitchSpeed = 30,
            TurretYaw = 0,
            TurretYawRange = 180,
            TurretYawSpeed = 60,
            Turreted = true,
            WeaponCategory = 'Direct Fire',
        },
        {
            AlwaysRecheckTarget = true,
            Audio = {
                Fire = Sound {
                    Bank = 'UALWeapon',
                    Cue = 'UAB2304_SAM',
                    LodCutoff = 'Weapon_LodCutoff',
                },
                Open = Sound {
                    Bank = 'UAB',
                    Cue = 'UAB2304_Activate',
                    LodCutoff = 'Weapon_LodCutoff',
                },
            },
            BallisticArc = 'RULEUBA_None',
            CollideFriendly = false,
            Damage = 30,
            DamageRadius = 1,
            DamageType = 'Normal',
            DisplayName = 'Zealot AA Missile',
            FireTargetLayerCapsTable = {
                Land = 'Land|Water',
            },
            FiringTolerance = 10,
            Label = 'RocketBackpack',
            MaxRadius = 35,
            MinRadius = 5,
            MuzzleSalvoDelay = 0.5,
            MuzzleSalvoSize = 2,
            MuzzleVelocity = 5,
            ProjectileId = '/projectiles/AAAZealotMissile01/AAAZealotMissile01_proj.bp',
            ProjectileLifetime = 3,
            ProjectilesPerOnFire = 1,
            RackBones = {
                {
                    MuzzleBones = {
                        'missileMuzzleLeft',
                    },
                    RackBone = 'bodyTop',
                },
                {
                    MuzzleBones = {
                        'missileMuzzleRight',
                    },
                    RackBone = 'bodyTop',
                },
            },
            RangeCategory = 'UWRC_IndirectFire',
            RackFireTogether = false,
            RackRecoilDistance = 0,
            RackReloadTimeout = 10,
            RackSalvoChargeTime = 0,
            RackSalvoReloadTime = 0,
            RackSalvoSize = 1,
            RackSlavedToTurret = true,
            RateOfFire = 0.2,
            TargetCheckInterval = 0.3,
            TargetPriorities = {
                'SPECIALHIGHPRI',
                'COMMAND',
                'MOBILE',
                'STRUCTURE DEFENSE',
                'SPECIALLOWPRI',
                'ALLUNITS',
            },
            TargetRestrictDisallow = 'UNTARGETABLE',
            Turreted = false,
            WeaponCategory = 'Missile',
            WeaponUnpacks = false,
        },
    },
    Wreckage = {
        Blueprint = '/props/DefaultWreckage/DefaultWreckage_prop.bp',
        EnergyMult = 0,
        HealthMult = 0.9,
        MassMult = 0.9,
        ReclaimTimeMultiplier = 1,
        WreckageLayers = {
            Air = false,
            Land = true,
            Seabed = false,
            Sub = false,
            Water = false,
        },
    },
} 