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); }
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); } }