private void DoReadShipCreate() { int tmpUID = FReader.ReadInt32(); Landing tmpLanding = LandingByUID(tmpUID); /* пересмотреть логику */ if (tmpLanding.Ship != null) { return; } Player LOwner = SSHShared.FindPlayer(FReader.ReadInt32()); ShipType LShipType = (ShipType)FReader.ReadInt32(); Ship LShip = new Ship(tmpUID, LOwner, tmpLanding, LShipType) { State = (ShipState)FReader.ReadInt32(), Mode = (ShipMode)FReader.ReadInt32(), AttachedPlanet = PlanetByUID(FReader.ReadInt32()), Count = FReader.ReadInt32(), HP = FReader.ReadInt32(), Fuel = FReader.ReadInt32(), IsCapture = FReader.ReadBoolean(), IsAutoTarget = FReader.ReadBoolean(), }; LShip.Allocate(); }
// Обновление владельца планеты public void UpdateOwner(int AOwner) { // Определим игрока владельца Owner = SSHShared.FindPlayer(AOwner); if (Owner.Role != SSHRole.Neutral) { Name = Owner.Name; } // Сохраним данные FScript.UpdateOwner(); // Обновим миникарту при смене владельца FScript.UpdateMinimap(true, false, false); }
private void DoReadPlanetarLoadPlanets() { int LCount = FReader.ReadInt32(); // Создадим координатную сетку for (int LSectorX = 0; LSectorX < Engine.MapSize.x; LSectorX++) { for (int LSectorY = 0; LSectorY < Engine.MapSize.y; LSectorY++) { new Grid(Engine.UIPanelGrid, LSectorX, LSectorY); } } // Загрузка планет for (int LIndex = 0; LIndex < LCount; LIndex++) { int LUID = FReader.ReadInt32(); int LPosX = FReader.ReadInt32(); int LPosY = FReader.ReadInt32(); int LType = FReader.ReadInt32(); int LMode = FReader.ReadInt32(); Planet LPlanet = new Planet(LUID, Engine.UIBattlefield, LPosX, LPosY, (PlanetType)LType, (PlanetMode)LMode) { Owner = SSHShared.FindPlayer(FReader.ReadInt32()), State = (PlanetState)FReader.ReadInt32(), VisibleHard = FReader.ReadBoolean(), VisibleSoft = FReader.ReadBoolean(), IsCoverageSelf = FReader.ReadBoolean(), IsCoverageFriends = FReader.ReadBoolean(), IsCoverageEnemy = FReader.ReadBoolean(), }; LPlanet.Allocate(); } // Загрузка ссылок for (int LIndex = 0; LIndex < LCount; LIndex++) { int LLinkCount = FReader.ReadInt32(); for (int LLink = 0; LLink < LLinkCount; LLink++) { Engine.MapPlanets[LIndex].Links.Add(Engine.MapPlanets[FReader.ReadInt32()]); } } }