private static PauseAction GetPauseAction(MultipleRecords multipleRecords) { var action = new PauseAction(); action.Time = SerializerHelper.GetTime(multipleRecords); return(action); }
private static RotateAction GetRotateAction(MultipleRecords multipleRecords) { var action = new RotateAction(); action.Angle = SerializerHelper.GetAngle(multipleRecords); return(action); }
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); }
private static EnterDoorAction GetEnterDoorAction(MultipleRecords multipleRecords) { var action = new EnterDoorAction(); action.MovementType = SerializerHelper.GetMovementType(multipleRecords); action.DoorName = multipleRecords.GetStringValue(DoorName); return(action); }
private static MoveAction GetMoveAction(MultipleRecords multipleRecords) { var action = new MoveAction(); SerializerHelper.PopulateIPosition(action, multipleRecords); action.MovementType = SerializerHelper.GetMovementType(multipleRecords); return(action); }
public RecordWriter(MultipleRecords records) { if (records is null) { throw new ArgumentNullException(nameof(records)); } _records = records; }
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); }
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); }
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); }
//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); }
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); } }
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); } }
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); }
public static string GetSpeed(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.Speed);
public static string GetMovementType(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.MovementType);
public static MultipleRecords GetRoutesMultipleRecords(MultipleRecords multipleRecords) { return(multipleRecords.GetMultipleRecord(Patrol).GetMultipleRecord(EnemyAction)); }
internal static string GetTime(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.Time);
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); }
public static void PopulateIPosition(IPosition target, MultipleRecords multipleRecords) { target.Position = GetPosition(multipleRecords); target.Area = GetArea(multipleRecords); }
private static string GetArea(MultipleRecords multipleRecords) => multipleRecords.GetStringValue(StringConstants.Area);