Exemple #1
0
        private static PauseAction GetPauseAction(MultipleRecords multipleRecords)
        {
            var action = new PauseAction();

            action.Time = SerializerHelper.GetTime(multipleRecords);
            return(action);
        }
Exemple #2
0
        private static RotateAction GetRotateAction(MultipleRecords multipleRecords)
        {
            var action = new RotateAction();

            action.Angle = SerializerHelper.GetAngle(multipleRecords);
            return(action);
        }
Exemple #3
0
        public override Record Deserialize(World input)
        {
            var record  = new Record(RecordName);
            var records = new MultipleRecords();

            if (input.GscFileName != null)
            {
                records.Records.Add(GscFile, RecordExtensions.GetSingleDataRecord(GscFile, input.GscFileName));
            }
            if (input.Administration.MultipleRecords != null)
            {
                records.AddMultipleRecords(Administration, input.Administration.MultipleRecords);
            }
            records.AddMixedDataRecord(MissionObjects, MissionObjectsSerializer.Deserialize(input.MissionObjects));
            records.AddMixedDataRecord(Patrols, PatrolsSerializer.Deserialize(input.Patrols));
            if (input.SpecialAreas.MultipleRecords != null)
            {
                records.AddMixedDataRecord(SpecialAreas, input.SpecialAreas.MultipleRecords);
            }
            if (input.SoundAreas.MultipleRecords != null)
            {
                records.AddMixedDataRecord(SoundAreas, input.SoundAreas.MultipleRecords);
            }
            record.Data = records;
            return(record);
        }
Exemple #4
0
        private static EnterDoorAction GetEnterDoorAction(MultipleRecords multipleRecords)
        {
            var action = new EnterDoorAction();

            action.MovementType = SerializerHelper.GetMovementType(multipleRecords);
            action.DoorName     = multipleRecords.GetStringValue(DoorName);
            return(action);
        }
Exemple #5
0
        private static MoveAction GetMoveAction(MultipleRecords multipleRecords)
        {
            var action = new MoveAction();

            SerializerHelper.PopulateIPosition(action, multipleRecords);
            action.MovementType = SerializerHelper.GetMovementType(multipleRecords);
            return(action);
        }
Exemple #6
0
        public RecordWriter(MultipleRecords records)
        {
            if (records is null)
            {
                throw new ArgumentNullException(nameof(records));
            }

            _records = records;
        }
Exemple #7
0
        private static Position GetPosition(MultipleRecords multipleRecords)
        {
            var mixedDataRecord = multipleRecords.GetMixedDataRecord(StringConstants.Position);
            var x = mixedDataRecord[0].GetStringValue();
            var y = mixedDataRecord[1].GetStringValue();
            var z = mixedDataRecord[2].GetStringValue();

            return(new Position(x, y, z));
        }
        public static Commando Serialize(MultipleRecords multipleRecords)
        {
            var commando = GetCommando(multipleRecords);

            if (commando == null)
            {
                return(null);
            }
            SerializerHelper.PopulateCharacter(commando, multipleRecords);
            return(commando);
        }
Exemple #9
0
        public static bool IsSolder(MultipleRecords multipleRecords)
        {
            var primaryType   = multipleRecords.GetStringValue(StringConstants.PrimaryObjectType);
            var secondaryType = multipleRecords.GetStringValue(StringConstants.SecondaryObjectType);

            if (primaryType == PrimarySoldierType && secondaryType == SecondarySoldierType)
            {
                return(true);
            }
            return(false);
        }
Exemple #10
0
        private static MultipleRecords GetMovementInfoRecord(MultipleRecords multipleRecords)
        {
            var mixedDataRecord = multipleRecords.GetMixedDataRecordTemp(Behavior);

            if (mixedDataRecord.GetStringValue(0) == ComporAlemanScript)
            {
                var movementRecords = mixedDataRecord.GetMultipleRecords(1);
                return(movementRecords.GetMultipleRecord(MovementInfo));
            }
            return(null);
        }
        private static MultipleRecords ParseMultipleRecords(string[] tokens, int startIndex, int endIndex)
        {
            var record = new MultipleRecords();

            for (var i = startIndex + 1; i < endIndex; i++)
            {
                var indexes = IndexHelper.GetIndexes(tokens, i);
                var result  = ParseTokens(tokens, i);
                record.Records.Add(result.Name, result);
                i = indexes.endIndex;
            }
            return(record);
        }
Exemple #12
0
        //private SoldiersSerializer _soldiersSerializer;
        //public SoldiersSerializer SoldiersSerializer => _soldiersSerializer ?? (_soldiersSerializer = new SoldiersSerializer());

        public static void PopulateCharacter(Character character, MultipleRecords multipleRecords)
        {
            if (character is EnemyPatrol)
            {
                PopulateIPosition(character, multipleRecords);
            }
            else
            {
                PopulateIPosition(character, multipleRecords.GetMultipleRecord(StringConstants.CharacterPosition));
            }
            character.TokenId = multipleRecords.GetStringValue(StringConstants.TokenId);
            character.Angle   = multipleRecords.GetStringValue(StringConstants.Angle);
        }
Exemple #13
0
 public static Mission GetMission(MultipleRecords multipleRecords)
 {
     return(new Mission
     {
         MsbFileName = multipleRecords.GetStringValue(MsbFile),
         BasFileName = multipleRecords.GetStringValue(BasFile),
         Camera = SerializerHelper.Instance.CameraSerializer.Serialize(multipleRecords.GetRecord(CameraSerializer.Camera)),
         Briefing = SerializerHelper.Instance.BriefingSerializer.Serialize(multipleRecords.GetRecord(BriefingSerializer.Briefing)),
         Music = SerializerHelper.Instance.MusicSerializer.Serialize(multipleRecords.GetRecord(MusicSerializer.Music)),
         Ficheros = SerializerHelper.Instance.FicherosSerializer.Serialize(multipleRecords.GetRecord(FicherosSerializer.Ficheros)),
         Abilities = new Abilities(multipleRecords.GetMultipleRecord(StringConstants.Abilities)),
         World = SerializerHelper.Instance.WorldSerializer.Serialize(multipleRecords.GetRecord(WorldSerializer.World))
     });
 }
        public static void PopulateRoutes(EnemyCharacter enemy, MultipleRecords multipleRecords)
        {
            enemy.DefaultRoute = multipleRecords.GetStringValue(DefaultRoute);
            var routes = multipleRecords.GetMixedDataRecord(Routes);

            foreach (var route in routes)
            {
                var record       = route as MultipleRecords;
                var enemyActions = new EnemyRoute();
                enemyActions.RouteName        = record.GetStringValue(RouteName);
                enemyActions.Speed            = record.GetStringValue(StringConstants.Speed);
                enemyActions.ActionRepeatType = record.GetStringValue(StringConstants.EnemyActionType);
                EnemyActionHelper.AddEnemyActions(enemyActions, record.GetMixedDataRecord(ActionStep));
                enemy.Routes.Add(enemyActions);
            }
        }
Exemple #15
0
        public static MultipleRecords GetMultipleRecords(Mission mission)
        {
            var records = new MultipleRecords();

            records.Records.Add(MsbFile, RecordExtensions.GetSingleDataRecord(MsbFile, mission.MsbFileName));
            records.Records.Add(BasFile, RecordExtensions.GetSingleDataRecord(BasFile, mission.BasFileName));
            records.Records.Add(CameraSerializer.Camera, SerializerHelper.Instance.CameraSerializer.Deserialize(mission.Camera));
            records.Records.Add(BriefingSerializer.Briefing, SerializerHelper.Instance.BriefingSerializer.Deserialize(mission.Briefing));
            records.Records.Add(MusicSerializer.Music, SerializerHelper.Instance.MusicSerializer.Deserialize(mission.Music));
            records.Records.Add(FicherosSerializer.Ficheros, SerializerHelper.Instance.FicherosSerializer.Deserialize(mission.Ficheros));
            if (mission.Abilities.MultipleRecords != null)
            {
                records.AddMultipleRecords(StringConstants.Abilities, mission.Abilities.MultipleRecords);
            }
            records.Records.Add(WorldSerializer.World, SerializerHelper.Instance.WorldSerializer.Deserialize(mission.World));
            return(records);
        }
        public static bool IsCommado(MultipleRecords multipleRecords)
        {
            var tokenId = multipleRecords.GetStringValue(StringConstants.TokenId);

            switch (tokenId)
            {
            case GreenBeretToken:
            case SniperToken:
            case MarineToken:
            case SapperToken:
            case DriverToken:
            case SpyToken:
            case NatashaToken:
            case ThiefToken:
            case WilsonToken:
            case WhiskyToken:
                return(true);

            default:
                return(false);
            }
        }
        private static Commando GetCommando(MultipleRecords multipleRecords)
        {
            var tokenId = multipleRecords.GetStringValue(StringConstants.TokenId);

            switch (tokenId)
            {
            case GreenBeretToken:
                return(new GreenBeret());

            case SniperToken:
                return(new Sniper());

            case MarineToken:
                return(new Marine());

            case SapperToken:
                return(new Sapper());

            case DriverToken:
                return(new Driver());

            case SpyToken:
                return(new Spy());

            case NatashaToken:
                return(new Natasha());

            case ThiefToken:
                return(new Thief());

            //case WilsonToken:
            //  return new Wilson();
            //case WhiskyToken:
            //  return new Whisky();
            default:
                return(null);
            }
        }
Exemple #18
0
        public static EnemySoldier Serialize(MultipleRecords multipleRecords)
        {
            var soldier = GetEnemySoldier(multipleRecords);

            if (soldier == null)
            {
                return(null);
            }
            SerializerHelper.PopulateCharacter(soldier, multipleRecords);
            var movementRecord = GetMovementInfoRecord(multipleRecords);

            if (movementRecord == null || movementRecord.Records.Count == 0)
            {
                return(soldier);
            }
            var routesRecord = EnemyRouteHelper.GetRoutesMultipleRecords(movementRecord);

            if (routesRecord != null && movementRecord.Records.Count != 0)
            {
                EnemyRouteHelper.PopulateRoutes(soldier, routesRecord);
            }
            return(soldier);
        }
Exemple #19
0
 public static string GetSpeed(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.Speed);
Exemple #20
0
 public static string GetMovementType(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.MovementType);
 public static MultipleRecords GetRoutesMultipleRecords(MultipleRecords multipleRecords)
 {
     return(multipleRecords.GetMultipleRecord(Patrol).GetMultipleRecord(EnemyAction));
 }
Exemple #22
0
 internal static string GetTime(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.Time);
Exemple #23
0
        private static EnemySoldier GetEnemySoldier(MultipleRecords multipleRecords)
        {
            var mixedDataRecord = multipleRecords.GetMixedDataRecordTemp(Behavior);

            if (mixedDataRecord.GetStringValue(0) == ComporAlemanScript)
            {
                var movementRecords = mixedDataRecord.GetMultipleRecords(1);
                var animationFile   = movementRecords.GetStringValue(AnimationFile);
                if (animationFile.Equals("MECANICOAZUL.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new BlueMechanicGerman());
                }
                if (animationFile.Equals("ALEJAIMITO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new BlueSoldierGerman());
                }
                if (animationFile.Equals("ALEMECANICO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new MechanicGerman());
                }
                if (animationFile.Equals("DESNUDO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new UnderwearSoldierGerman());
                }
                if (animationFile.Equals("ENBOLAS.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new TowelSoldierGerman());
                }
                if (animationFile.Equals("ALEMARINERO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new WorkerGerman());
                }
                if (animationFile.Equals("OFICINISTA.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new OfficerAssistantGerman());
                }
                if (animationFile.Equals("ALEPISTDELGADO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new GunSoldier1German());
                }
                if (animationFile.Equals("ALEPISTGORDO1.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new GunSoldier2German());
                }
                if (animationFile.Equals("ALEPISTGORDO2.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new GunSoldier3German());
                }
                if (animationFile.Equals("ALEPISTGORDO3.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new GunSoldier4German());
                }
                if (animationFile.Equals("ALEPISTLINTERNERO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new GunSoldierTorchGerman());
                }
                if (animationFile.Equals("CARCELEROALE.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new JailerGerman());
                }
                if (animationFile.Equals("ALEFUS.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new Rifleman1German());
                }
                if (animationFile.Equals("ALEFUSDELGADO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new Rifleman2German());
                }
                if (animationFile.Equals("ALEFUSGORDO1.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new Rifleman3German());
                }
                if (animationFile.Equals("ALEFUSGORDO2.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new Rifleman4German());
                }
                if (animationFile.Equals("ALEICEF.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new RiflemanArcticGerman());
                }
                if (animationFile.Equals("ALEPISTFRANCO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new SniperGunGerman());
                }
                if (animationFile.Equals("ALEMET.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new SubmachineGunnerGerman());
                }
                if (animationFile.Equals("ALEICEZ.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new SubmachineGunnerArcticGerman());
                }
                if (animationFile.Equals("JAPOIGNIFUGO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new AtomicWorkerJapanese());
                }
                if (animationFile.Equals("CARCELEROJAPO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new JailerJapanese());
                }
                if (animationFile.Equals("MECANICOJAPO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new MechanicJapanese());
                }
                if (animationFile.Equals("DESNUDOJAPO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new UnderwearSoldierJapanese());
                }
                if (animationFile.Equals("ENBOLASJAPO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new TowelSoldierJapanese());
                }
                if (animationFile.Equals("CURRITOJAPO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new WorkerJapanese());
                }
                if (animationFile.Equals("JAPOGORRONEGRO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new BigHatWorkerBlackJapanese());
                }
                if (animationFile.Equals("JAPOGORROVERDE.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new BigHatWorkerGreenJapanese());
                }
                if (animationFile.Equals("JAPOGORRO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new BigHatWorkerWhiteJapanese());
                }
                if (animationFile.Equals("JAPOCANONIERO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new CannonierJapanese());
                }
                if (animationFile.Equals("JAPO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new GunSoldierJapanese());
                }
                if (animationFile.Equals("JAPOMOCH.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new GunSoldierBackpackJapanese());
                }
                if (animationFile.Equals("CARCELEROKWAI.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new JailerGunJapanese());
                }
                if (animationFile.Equals("JAPOPILOTO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new PilotJapanese());
                }
                if (animationFile.Equals("JAPOFUS.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new RiflemanJapanese());
                }
                if (animationFile.Equals("JAPOMOCHFUS.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new RiflemanBackpackJapanese());
                }
                if (animationFile.Equals("JAPOINFMAR.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new BlueSoldierGerman());
                }
                if (animationFile.Equals("JAPOMARINERO.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new SailorWhiteJapanese());
                }
                if (animationFile.Equals("JAPOVIGIA.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new ScoutJapanese());
                }
                if (animationFile.Equals("JAPOTORTURADOR.ANI", StringComparison.CurrentCultureIgnoreCase))
                {
                    return(new TorturerJapanese());
                }
            }
            return(null);
        }
Exemple #24
0
 public static void PopulateIPosition(IPosition target, MultipleRecords multipleRecords)
 {
     target.Position = GetPosition(multipleRecords);
     target.Area     = GetArea(multipleRecords);
 }
Exemple #25
0
 private static string GetArea(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.Area);