
#include "cfgMovesBasic.hpp"
class CfgPatches
{
    class braf_m114
    {
        units[] = {"braf_m114_155mm"};
        weapons[] = {"braf_canhao_155mm"};
        requiredVersion = 0.01;
        requiredAddons[] = {"A3_Weapons_F_Mark"};
    };
};

class CfgAmmo
{
    class ShellCore;
    class ShellBase : ShellCore
    {
    };
    class Sh_155mm_AMOS : ShellBase
    {
    };
    class braf_Base2_HE : Sh_155mm_AMOS
    {
        cost = 100;
        artilleryLock = 1;
        typicalSpeed = 1300;
        hit = 300;
        airFriction = -0.00045;
        timeToLive = 15;
        whistleDist = 14;
        tracerScale = 2;
        tracerStartTime = 0.1;
        tracerEndTime = 2.3;
        indirectHit = 65;
        indirectHitRange = 15;
    };
    class braf_Base2_WP : braf_Base2_HE
    {
        hit = 60;
        typicalSpeed = 1300;
        indirectHit = 50;
        indirectHitRange = 30;
        airFriction = -0.00045;
        timeToLive = 15;
        whistleDist = 14;
        tracerScale = 2;
        tracerStartTime = 0.1;
        tracerEndTime = 2.3;
        explosive = 0.8;
        ExplosionEffects = "WPExplosion";
        CraterEffects = "ExploAmmoCrater";
        // soundHit[] = {"\ca\weapons\data\sound\explosion\grenade_new1",3.16228,1};
    };
    class Sh_155mm_AMOS_LG;
    class braf_Base2_LASER : Sh_155mm_AMOS_LG
    {
    };
    class Flare_82mm_AMOS_White;
    class braf_Base2_ILLUM : Flare_82mm_AMOS_White
    {
        hit = 8;
        indirectHit = 0;
        typicalSpeed = 1300;
        airFriction = -0.00045;
        timeToLive = 15;
        whistleDist = 14;
        tracerScale = 2;
        tracerStartTime = 0.1;
        tracerEndTime = 2.3;
        indirectHitRange = 0;
        explosive = 0;
        ExplosionEffects = "";
        soundHit[] = {"", 0, 1};
        CraterEffects = "";
    };
    class Smoke_120mm_AMOS_White;
    class braf_Base2_SMOKE : Smoke_120mm_AMOS_White
    {
        hit = 8;
        typicalSpeed = 1300;
        indirectHit = 0;
        indirectHitRange = 0;
        airFriction = -0.00045;
        timeToLive = 15;
        whistleDist = 14;
        tracerScale = 2;
        tracerStartTime = 0.1;
        tracerEndTime = 2.3;
        explosive = 0.1;
        ExplosionEffects = "";
        soundHit[] = {"", 0, 1};
        CraterEffects = "";
    };
    class Sh_120mm_APFSDS;
    class braf_Base2_AT : Sh_120mm_APFSDS
    {
        allowAgainstInfantry = 1;
        typicalSpeed = 1300;
        airfriction = "-3.96e-005";
        hit = 350;
        model = "\A3\Weapons_f\Data\bullettracer\shell_tracer_green";
    };

    class braf_155mm_HE : Sh_155mm_AMOS
    {
        artilleryLock = 1;
        typicalSpeed = 1300;
        hit = 300;
        indirectHit = 85;
        indirectHitRange = 25;
    };

    class braf_155mm_WP : braf_155mm_HE
    {
        hit = 60;
        typicalSpeed = 1300;
        indirectHit = 50;
        indirectHitRange = 30;
        explosive = 0.8;
        ExplosionEffects = "WPExplosion";
        CraterEffects = "ExploAmmoCrater";
    };
    class braf_155mm_LASER : Sh_155mm_AMOS_LG
    {
    };
    class braf_155mm_ILLUM : Flare_82mm_AMOS_White
    {
        hit = 8;
        typicalSpeed = 1300;
        indirectHit = 0;
        indirectHitRange = 0;
        explosive = 0;
        ExplosionEffects = "";
        soundHit[] = {"", 0, 1};
        CraterEffects = "";
        airFriction = -0.00045;
        timeToLive = 15;
        whistleDist = 14;
        tracerScale = 2;
        tracerStartTime = 0.1;
        tracerEndTime = 2.3;
    };
    class braf_155mm_SMOKE : Smoke_120mm_AMOS_White
    {
        hit = 8;
        typicalSpeed = 1300;
        indirectHit = 0;
        indirectHitRange = 0;
        explosive = 0.1;
        ExplosionEffects = "";
        soundHit[] = {"", 0, 1};
        CraterEffects = "";
        airFriction = -0.00045;
        timeToLive = 15;
        whistleDist = 14;
        tracerScale = 2;
        tracerStartTime = 0.1;
        tracerEndTime = 2.3;
    };
};

class CfgMagazines
{
    class Default;
    class CA_Magazine : Default
    {
    };
    class VehicleMagazine : CA_Magazine
    {
    };
    class 32Rnd_155mm_Mo_shells;
    class braf_30Rnd_155mmHE_m114 : 32Rnd_155mm_Mo_shells // VehicleMagazine
    {
        scope = 2;
        displayName = "155mm HE";
        ammo = "braf_155mm_HE";
        count = 30;
        nameSound = "heat";
        initSpeed = 1100;
        displayNameShort = "FRAG HE";
        muzzleImpulseFactor[] = {0.65, 0.65};
    };
    class braf_30Rnd_155mmwp_m114 : braf_30Rnd_155mmHE_m114
    {
        displayName = "155mm WP";
        displayNameShort = "WP";
        ammo = "braf_155mm_WP";
    };
    class braf_30Rnd_155mmLASER_m114 : braf_30Rnd_155mmHE_m114
    {
        displayName = "155mm Laser Guided";
        displayNameShort = "Laser Guided";
        ammo = "braf_155mm_LASER";
    };
    class braf_30Rnd_155mmsmoke_m114 : braf_30Rnd_155mmHE_m114
    {
        displayName = "155mm Smoke";
        displayNameShort = "Smoke";
        ammo = "braf_155mm_SMOKE";
    };
    class braf_30Rnd_155mmilum_m114 : braf_30Rnd_155mmHE_m114
    {
        displayName = "155mm Ilumination";
        displayNameShort = "Ilumination";
        ammo = "braf_155mm_ILLUM";
    };
};

class cfgWeapons
{

    class MGunCore;
    class MGun : MGunCore
    {
    };
    class GMG_F : MGun
    {
    };
    class GMG_20mm : GMG_F
    {
    };
    class CannonCore;
    class mortar_155mm_AMOS : CannonCore
    {
    };
    class braf_w_d30 : mortar_155mm_AMOS
    {
        scope = 1;
        displayName = 2A18 122mm Howitzer;
        ballisticscomputer = 2;
        minRange = 10;
        minRangeProbab = 0.700000;
        midRange = 8600;
        midRangeProbab = 0.700000;
        maxRange = 17200;
        maxRangeProbab = 0.100000;
        reloadTime = 6;
        magazineReloadTime = 7;

        class GunParticles
        {

            class Effect1
            {
                effectName = "ArtilleryFired1";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };

            class Effect2
            {
                effectName = "ArtilleryFiredL";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };

            class Effect3
            {
                effectName = "ArtilleryFiredR";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };

            class Effect4
            {
                effectName = "CannonFired";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };
        };
    };
    class braf_canhao_155mm : braf_w_d30
    {
        scope = 1;
        dlc = "BRAF";
        author = "BRAF";
        displayName = M114 155mm Cannon;

        magazines[] =
            {
                "braf_30Rnd_155mmHE_m114",
                "braf_30Rnd_155mmwp_m114",
                "braf_30Rnd_155mmLASER_m114",
                "braf_30Rnd_155mmsmoke_m114",
                "braf_30Rnd_155mmilum_m114"};
    };
    class braf_w_m114 : braf_w_d30
    {
        scope = 1;
        dlc = "BRAF";
        author = "BRAF";
        displayName = M114 155mm cc;

        magazines[] =
            {
                "braf_30Rnd_155mmHE_m114",
                "braf_30Rnd_155mmwp_m114",
                "braf_30Rnd_155mmsmoke_m114",
                "braf_30Rnd_155mmilum_m114"};
    };
};

class CfgVehicles
{
    class LandVehicle;

    class StaticCannon : LandVehicle
    {
        class NewTurret;

        class Turrets
        {

            class MainTurret : NewTurret
            {
                class ViewOptics;
            };
        };
    };

    class braf_m114_155mm : StaticCannon
    {
        scope = 2;
        scopeCurator = 2;
        artilleryScanner = 1;
        dlc = "BRAF";
        author = "BRAF";
        availableForSupportTypes[] = {"Artillery"};
        model = "\braf\braf_static\m114\braf_m114.p3d";
        displayName = M114 155mm;
        picture = "\braf\braf_static\m114\ico\m119_ca.paa";
        icon = "\braf\braf_static\m114\ico\icomap_m119_ca.paa";
        slingLoadCargoMemoryPoints[] = {"SlingLoadCargo1", "SlingLoadCargo2", "SlingLoadCargo3", "SlingLoadCargo4"};
        side = 2;
        faction = BRAF_ARMY;
        crew = "braf_Soldier";
        transportSoldier = 2;
        typicalCargo[] = {"braf_Soldier", "braf_Soldier"};
        cargoAction[] = {"braf_M119_Cargo", "braf_M119_Commander"};
        reloadtime = 2;
        fireDustEffect = "FDustEffects";

        class AnimationSources
        {
            class recoil_source
            {
                source = "reload";
                weapon = "braf_canhao_155mm";
            };
            class mainGunT_source
            {
                source = "user";
                initPhase = 0;
                animPeriod = 2.500000;
            };
            class MainTurretT_source
            {
                source = "user";
                initPhase = 0;
                animPeriod = 2.500000;
            };
            class wheel
            {
                source = "user";
                initPhase = 0;
                animPeriod = 2.500000;
            };
            class szpilki_source
            {
                source = "user";
                initPhase = 0;
                animPeriod = 2.500000;
            };
        };

        class Damage
        {
            tex[] = {};
            mat[] =
                {
                    "\braf\braf_static\m114\data\m119.rvmat",
                    "\braf\braf_static\m114\data\m119_damage.rvmat",
                    "\braf\braf_static\m114\data\m119_destruct.rvmat"};
        };

        class GunParticles
        {

            class Effect1
            {
                effectName = "ArtilleryFired1";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };

            class Effect2
            {
                effectName = "ArtilleryFiredL";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };

            class Effect3
            {
                effectName = "ArtilleryFiredR";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };

            class Effect4
            {
                effectName = "CannonFired";
                positionName = "usti_hlavne";
                directionName = "konec_hlavne";
            };
        };

        class Turrets : Turrets
        {
            class MainTurret : MainTurret
            {
                gunBeg = "Usti hlavne";
                gunEnd = "Konec hlavne";
                turretInfoType = "RscWeaponRangeArtillery";
                gunnerOpticsEffect[] = {"OpticsCHAbera1", "OpticsBlur2"};
                gunnerOpticsModel = "\braf\braf_static\m114\optika_m101";
                gunneraction = "braf_M119_Cargo";
                memoryPointsGetInGunner = "pos_gunner";
                memoryPointsGetInGunnerDir = "pos_gunner_dir";
                memoryPointGunnerOptics = "gunnerview";
                minElev = -9;
                maxelev = 80;
                minTurn = -180;
                maxTurn = 180;
                castGunnerShadow = 1;
                ejectDeadGunner = 1;
                gunnerGetInAction = "";
                gunnerGetOutAction = "";
                gunnerForceOptics = 0;
                weapons[] = {"braf_canhao_155mm"};
                magazines[] = {"braf_30Rnd_155mmHE_m114", "braf_30Rnd_155mmwp_m114", "braf_30Rnd_155mmLASER_m114", "braf_30Rnd_155mmsmoke_m114", "braf_30Rnd_155mmilum_m114"};
                class ViewOptics : ViewOptics
                {
                    initFov = 0.155;
                    minFov = 0.155;
                    maxFov = 0.155; // 3x zoom from 50 deg FOV
                };
            };
        };
    };
};