private static void CreateLoadSitRepMappings()
        {
            Mapper.CreateMap <HexVectorComponentSto, HexVectorComponent>()
            .ForMember(hvc => hvc.Direction, ac => ac.MapFrom(vcs => Enum.Parse(typeof(HexAxis), vcs.Direction)))
            .ForMember(hvc => hvc.Magnitude, ac => ac.MapFrom(vcs => vcs.Value));

            Mapper.CreateMap <HexVectorSto, RawHexVector>()
            .ForMember(hvc => hvc.Components, ac => ac.Ignore())
            .AfterMap((hvs, rhv) => rhv.AddComponents(Mapper.Map <IEnumerable <HexVectorComponentSto>, IEnumerable <HexVectorComponent> >(hvs.Components)));

            Mapper.CreateMap <ImpulseRecordSto, ImpulseTrackElement>()
            .ForMember(ite => ite.Impulse, ac => ac.MapFrom(irs => TurnData.Parse(irs.Impulse)));

            Mapper.CreateMap <ShellstarSto, ShellstarInfo>();

            Mapper.CreateMap <UnitSto, UnitModel>()
            .ForMember(um => um.Position, ac => ac.MapFrom(uns => HexGridCoordinate.Parse(uns.Position)))
            .ForMember(um => um.Vectors, ac => ac.MapFrom(uns => uns.Velocity))
            .AfterMap((uns, um) => uns.IncomingProjectiles.ForEach(st =>
            {
                var evasionInfo    = new EvasionInfoModel(AvidWindow.Parse(st.EvasionInfo.ImpactWindow), AvidWindow.Parse(st.EvasionInfo.EvasionUp).Direction);
                var shellstarModel = new ShellstarModel(Mapper.Map <ShellstarSto, ShellstarInfo>(st), TurnData.Parse(st.SegmentOfLaunch), evasionInfo);
                shellstarModel.Tag = st.Tag;
                um.AttachShellstar(shellstarModel);
            }));
        }
Exemplo n.º 2
0
        public void DistanceTest9_FourWindowsLevel()
        {
            var start       = AvidWindow.Parse("E/F-");
            var destination = AvidWindow.Parse("B-");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(4);
        }
Exemplo n.º 3
0
        public void DistanceTest7_ThreeWindowsOneHemisphere()
        {
            var start       = AvidWindow.Parse("E");
            var destination = AvidWindow.Parse("A++");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(3);
        }
Exemplo n.º 4
0
        public void DistanceTest8_ThreeWindowsDiagonal()
        {
            var start       = AvidWindow.Parse("E+");
            var destination = AvidWindow.Parse("F/A-");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(3);
        }
Exemplo n.º 5
0
        public void DistanceTest23_OppositeEmberCorner()
        {
            var start       = AvidWindow.Parse("C/D");
            var destination = AvidWindow.Parse("F/A");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(6);
        }
Exemplo n.º 6
0
        public void DistanceTest3_TwoWindowsAdjacent()
        {
            var start       = AvidWindow.Parse("C+");
            var destination = AvidWindow.Parse("C-");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(2);
        }
Exemplo n.º 7
0
        public void DistanceTest2_OneWindowDiagonal()
        {
            var start       = AvidWindow.Parse("A");
            var destination = AvidWindow.Parse("A/B+");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(1);
        }
Exemplo n.º 8
0
        public void DistanceTest21_OppositeBlueCorner()
        {
            var start       = AvidWindow.Parse("B/C+");
            var destination = AvidWindow.Parse("E/F-");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(6);
        }
Exemplo n.º 9
0
        public void DistanceTest18_OppositeGreen()
        {
            var start       = AvidWindow.Parse("B++");
            var destination = AvidWindow.Parse("E--");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(6);
        }
Exemplo n.º 10
0
        public void DistanceTest16_FiveWindowsBlue()
        {
            var start       = AvidWindow.Parse("C/D");
            var destination = AvidWindow.Parse("F/A-");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(5);
        }
Exemplo n.º 11
0
        public void DistanceTest14_FiveWindowsVertical()
        {
            var start       = AvidWindow.Parse("D++");
            var destination = AvidWindow.Parse("A-");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(5);
        }
Exemplo n.º 12
0
        public void DistanceTest12_FourWindowsNearVertical()
        {
            var start       = AvidWindow.Parse("---");
            var destination = AvidWindow.Parse("F/A+");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(4);
        }
Exemplo n.º 13
0
        public void DistanceTest11_FourWindowsDiagonal2()
        {
            var start       = AvidWindow.Parse("E/F+");
            var destination = AvidWindow.Parse("A/B");
            int distance    = ServiceFactory.Library.AvidCalculator.CountWindows(start, destination);

            distance.Should().Be(4);
        }