Beispiel #1
0
        public void Start()
        {
            var alteFelder = _FieldsContainer.Children.OfType <Schiffsposition>().ToList();

            foreach (var altesFeld in alteFelder)
            {
                _FieldsContainer.Children.Remove(altesFeld);
                _Spielfeld.Unregister(altesFeld);
            }

            _Spielfeld.Register(_FieldsContainer);
        }
Beispiel #2
0
        private void ZielOccupied(IField field, IFieldOccupant occupant)
        {
            if (_Mover.Id == occupant.Id)
            {
                _FieldsContainer.Children.Remove(_Von);
                _Spielfeld.Unregister(_Von);

                var neueSchiffsposition = (Schiffsposition)field;
                neueSchiffsposition.SetValue(Canvas.ZIndexProperty, 1);

                var von   = _Von;
                var moved = _Moved;

                Dispose(except: neueSchiffsposition);

                if (occupant.OrientatesBottom(neueSchiffsposition))
                {
                    neueSchiffsposition.OrientationAngle = (neueSchiffsposition.OrientationAngle + 180) % 360;
                }

                if (occupant.OrientatesLeft(neueSchiffsposition))
                {
                    neueSchiffsposition.OrientationAngle = (neueSchiffsposition.OrientationAngle + 270) % 360;
                }

                if (occupant.OrientatesRight(neueSchiffsposition))
                {
                    neueSchiffsposition.OrientationAngle = (neueSchiffsposition.OrientationAngle + 90) % 360;
                }

                neueSchiffsposition.ViewModel.LetztePosition = new SchiffspositionModel.Position(von.Position, von.OrientationAngle);
                neueSchiffsposition.ViewModel.Label          = null;

                moved(von, neueSchiffsposition);
            }
        }