public ExtUnit(ExtStep step, WCFUnit wcfUnit) { Step = step; WCFUnit = wcfUnit; ExtTerrain = MainWindow.ClientInfo.WorldData.Terrain.Single(p => p.WCFTerrain.Name == WCFUnit.Terrain); ExtUnitType = MainWindow.ClientInfo.WorldData.UnitType.Single(p => p.WCFUnitType.Name == WCFUnit.UnitType); }
private bool UnitTypeDrop(DragEventArgs e) { ExtUnitType dropUnitType = (e.Data.GetData(typeof(ExtUnitType)) as ExtUnitType); if (dropUnitType == null) { return(false); } if (_Terrain.ExtGarrison != null && _Terrain.ExtHolderUser != _Terrain.Game.ClientGameUser) { return(true); } if (dropUnitType.WCFUnitType.Cost > (_Terrain.Game.SelectedOrder.ExtTerrain.WCFTerrain.Strength - _Terrain.Game.ClientStep.ExtMarch.SumCost)) { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate1")); return(true); } if (dropUnitType.WCFUnitType.Name != "Корабль" && _Terrain.Game.SelectedOrder.ExtTerrain != _Terrain) { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate2")); return(true); } if (dropUnitType.WCFUnitType.Name == "Корабль") { if (!_Terrain.Game.SelectedOrder.ExtTerrain.JoinTerrainCol.Contains(_Terrain) || _Terrain.WCFTerrain.TerrainType == "Земля") { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate3")); return(true); } if (_Terrain.ExtHolderUser != null && _Terrain.ExtHolderUser != _Terrain.Game.ClientGameUser) { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate4")); return(true); } } WCFUnit unit = new WCFUnit(); unit.UnitType = dropUnitType.WCFUnitType.Name; unit.Terrain = _Terrain.WCFTerrain.Name; unit.Step = _Terrain.Game.ClientStep.WCFStep.Id; ExtUnit extUnit = new ExtUnit(_Terrain.Game.ClientStep, unit); if (!CheckMove(extUnit, _Terrain)) { return(true); } WCFMarchUnit wcfMarchUnit = new WCFMarchUnit(); wcfMarchUnit.Unit = extUnit.WCFUnit.Id; wcfMarchUnit.Terrain = extUnit.TempTerrain.WCFTerrain.Name; wcfMarchUnit.UnitType = extUnit.TempUnitType.WCFUnitType.Name; _Terrain.Game.ClientStep.ExtGameUserInfo.ExtUnit.Add(extUnit); _Terrain.Game.ClientStep.ExtMarch.WCFMarch.MarchUnit.Add(wcfMarchUnit); _Terrain.Game.ClientStep.ExtMarch.SumCost += dropUnitType.WCFUnitType.Cost; return(true); }