Пример #1
0
        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();
        }
Пример #2
0
 // Обновление владельца планеты
 public void UpdateOwner(int AOwner)
 {
     // Определим игрока владельца
     Owner = SSHShared.FindPlayer(AOwner);
     if (Owner.Role != SSHRole.Neutral)
     {
         Name = Owner.Name;
     }
     // Сохраним данные
     FScript.UpdateOwner();
     // Обновим миникарту при смене владельца
     FScript.UpdateMinimap(true, false, false);
 }
Пример #3
0
        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()]);
                }
            }
        }