コード例 #1
0
        public TurretType(FITFile objFitFile) : base(objFitFile)
        {
            objectTypeClass   = (int)ObjectTypeClass.TURRET_TYPE;
            objectClass       = ObjectClass.TURRET;
            damageLevel       = 0f;
            blownEffectId     = -1;
            normalEffectId    = -1;
            damageEffectId    = -1;
            explDmg           = explRad = 0f;
            baseTonnage       = 0f;
            weaponMasterId[0] = weaponMasterId[1] = weaponMasterId[2] = weaponMasterId[3] = -1;
            pilotSkill        = 0;
            punch             = 0f;
            turretYawRate     = 0f;
            turretTypeName    = 0;
            blocksLineOfFire  = false;

            lowTemplate  = 0;
            highTemplate = 0;


            if (!objFitFile.SeekSection("TurretData"))
            {
                return;
            }

            objFitFile.GetBool("BlocksLineOfFire", out blocksLineOfFire);

            objFitFile.GetFloat("DmgLevel", out damageLevel);

            if (!objFitFile.GetInt("BlownEffectId", out blownEffectId))
            {
                blownEffectId = -1;
            }
            if (!objFitFile.GetInt("NormalEffectId", out normalEffectId))
            {
                normalEffectId = -1;
            }
            if (!objFitFile.GetInt("DamageEffectId", out damageEffectId))
            {
                damageEffectId = -1;
            }

            objFitFile.GetInt("LowTemplate", out lowTemplate);
            objFitFile.GetInt("HighTemplate", out highTemplate);

            if (!objFitFile.GetFloat("ExplosionRadius", out explRad))
            {
                explRad = 0f;// if this fails, explosion radius is not set and no splash damage.
            }
            if (!objFitFile.GetFloat("ExplosionDamage", out explDmg))
            {
                explDmg = 0f; // if this fails, explosion damage is not set and no splash damage.
            }
            if (!objFitFile.GetFloat("Tonnage", out baseTonnage))
            {
                baseTonnage = 20f;
            }

            if (!objFitFile.GetFloat("AttackRadius", out engageRadius))
            {
                return;
            }

            if (!objFitFile.GetFloat("MaxTurretYawRate", out turretYawRate))
            {
                return;
            }
            if (!objFitFile.GetInt("WeaponType", out weaponMasterId[0]))
            {
                return;
            }


            //SPOTLIGHTS!!!!
            if (weaponMasterId[0] != -1)
            {
                punch = 99999f;//TODO: MASTERCOMPONENTLIST MasterComponent::masterList[weaponMasterId[0]].getCV();
            }
            else
            {
                punch = 0.0f;
            }

            if (!objFitFile.GetInt("WeaponType1", out weaponMasterId[1]))
            {
                weaponMasterId[1] = -1;
            }
            else
            {
                punch += 99999f;//TODO: MasterComponent::masterList[weaponMasterId[1]].getCV();
            }
            if (!objFitFile.GetInt("WeaponType2", out weaponMasterId[2]))
            {
                weaponMasterId[2] = -1;
            }
            else
            {
                punch += 99999f;//TODO: MasterComponent::masterList[weaponMasterId[2]].getCV();
            }
            if (!objFitFile.GetInt("WeaponType3", out weaponMasterId[3]))
            {
                weaponMasterId[3] = -1;
            }
            else
            {
                punch += 99999f;//TODO: MasterComponent::masterList[weaponMasterId[3]].getCV();
            }
            if (!objFitFile.GetInt("PilotSkill", out pilotSkill))
            {
                return;
            }


            if (!objFitFile.GetInt("BuildingName", out turretTypeName))
            {
                turretTypeName = 30164;// IDS_TRTOBJ_NAME;
            }
        }
コード例 #2
0
ファイル: BuildingType.cs プロジェクト: IronArthur/MCUnity
        public BuildingType(FITFile objFitFile) : base(objFitFile)
        {
            objectTypeClass       = (int)ObjectTypeClass.BUILDING_TYPE; //any reason to record TREEBUILDING_TYPE?
            objectClass           = ObjectClass.BUILDING;
            damageLevel           = 0f;
            sensorRange           = -1f;
            teamId                = -1;
            explDmg               = explRad = 0f;
            baseTonnage           = 0f;
            buildingTypeName      = 0;
            buildingDescriptionID = -1;
            startBR               = 0;
            numMarines            = 0;
            canRefit              = false;
            mechBay               = false;
            blocksLineOfFire      = false;

            lowTemplate  = 0;
            highTemplate = 0;

            if (!objFitFile.SeekSection("TreeData") ||
                !objFitFile.SeekSection("BuildingData"))
            {
                return;
            }

            //objFitFile.SeekSection("BuildingData");

            objFitFile.GetFloat("DmgLevel", out damageLevel);

            objFitFile.GetBool("CanRefit", out canRefit);
            if (canRefit)
            {
                objFitFile.GetBool("MechBay", out mechBay);
            }

            objFitFile.GetBool("BlocksLineOfFire", out blocksLineOfFire);

            objFitFile.GetInt("LowTemplate", out lowTemplate);
            objFitFile.GetInt("HighTemplate", out highTemplate);

            if (!objFitFile.GetFloat("ExplosionRadius", out explRad))
            {
                explRad = 0f;// if this fails, explosion radius is not set and no splash damage.
            }
            if (!objFitFile.GetFloat("ExplosionDamage", out explDmg))
            {
                explDmg = 0f; // if this fails, explosion damage is not set and no splash damage.
            }
            if (!objFitFile.GetFloat("Tonnage", out baseTonnage))
            {
                baseTonnage = 20f;
            }

            if (!objFitFile.GetInt("BattleRating", out startBR))
            {
                startBR = 20;
            }

            if (!objFitFile.GetInt("NumMarines", out numMarines))
            {
                numMarines = 0;
            }

            float realExtent = 0f;

            if (!objFitFile.GetFloat("ExtentRadius", out realExtent))
            {
                realExtent = -1f;
            }

            //----------------------------
            // Init sensor-related data...

            if (!objFitFile.GetInt("TeamID", out teamId))
            {
                teamId = -1;
            }

            if (!objFitFile.GetFloat("SensorRange", out sensorRange))
            {
                sensorRange = -1f;
            }

            int buildingNameInt = 30163;

            if (!objFitFile.GetInt("BuildingName", out buildingNameInt))
            {
                buildingNameInt = 30163;
            }
            buildingName = buildingNameInt.ToString();


            if (!objFitFile.GetInt("BattleRating", out resourcePoints))
            {
                resourcePoints = -1;
            }

            if (!objFitFile.GetInt("BasePixelOffsetX", out basePixelOffsetX))
            {
                basePixelOffsetX = 0;
            }
            if (!objFitFile.GetInt("BasePixelOffsetY", out basePixelOffsetY))
            {
                basePixelOffsetY = 0;
            }
            if (!objFitFile.GetInt("CollisionOffsetX", out collisionOffsetX))
            {
                collisionOffsetX = 0;
            }
            if (!objFitFile.GetInt("CollisionOffsetY", out collisionOffsetY))
            {
                collisionOffsetY = 0;
            }

            objFitFile.GetInt("HighTemplate", out highTemplate);
            objFitFile.GetInt("LowTemplate", out lowTemplate);

            //  impassability = (highTemplate << 32) | lowTemplate;


            //-------------------------------------------------------
            // Initialize the base object Type from the current file.

            extentRadius = realExtent;
        }