Пример #1
0
        void InitStory(Data.Save.SaveGame sg)
        {
            var missionNum = sg.StoryInfo?.MissionNum ?? 0;

            if (game.GameData.Ini.ContentDll.AlwaysMission13)
            {
                missionNum = 14;
            }
            if (missionNum != 0 && (missionNum - 1) < game.GameData.Ini.Missions.Count)
            {
                msnRuntime = new MissionRuntime(game.GameData.Ini.Missions[missionNum - 1], this);
                msnRuntime.Update(TimeSpan.Zero);
            }
        }
Пример #2
0
        void InitStory(Data.Save.SaveGame sg)
        {
            var missionNum = sg.StoryInfo?.MissionNum ?? 0;

            MissionNumber(sg.StoryInfo?.Mission, ref missionNum);
            if (Game.GameData.Ini.ContentDll.AlwaysMission13)
            {
                missionNum = 14;
            }
            if (missionNum != 0 && (missionNum - 1) < Game.GameData.Ini.Missions.Count)
            {
                msnRuntime = new MissionRuntime(Game.GameData.Ini.Missions[missionNum - 1], this);
                msnRuntime.Update(0.0);
            }
        }
Пример #3
0
        public void Start()
        {
            if (MissionNum != 0 && (MissionNum - 1) < Game.GameData.Ini.Missions.Count)
            {
                msnrun = new MissionRuntime(Game.GameData.Ini.Missions[MissionNum - 1], this);
            }

            if (PlayerBase != null)
            {
                Game.ChangeState(new RoomGameplay(Game, this, PlayerBase));
            }
            else
            {
                Game.ChangeState(new SpaceGameplay(Game, this));
            }
        }
Пример #4
0
        public void Start()
        {
            if (MissionNum != 0 && (MissionNum - 1) < Game.GameData.Ini.Missions.Count)
            {
                msnrun = new MissionRuntime(Game.GameData.Ini.Missions[MissionNum - 1], this);
            }

            if (PlayerBase != null)
            {
                Game.ChangeState(new RoomGameplay(Game, this, PlayerBase));
            }
            else
            {
                worldReady = false;
                toAdd      = new List <GameObject>();
                gp         = new SpaceGameplay(Game, this);
                Game.ChangeState(gp);
            }
        }
Пример #5
0
        public void OpenSaveGame(Data.Save.SaveGame sg)
        {
            Orientation       = Quaternion.Identity;
            Position          = sg.Player.Position;
            Base              = sg.Player.Base;
            System            = sg.Player.System;
            Character         = new NetCharacter();
            Character.Credits = sg.Player.Money;
            string ps;

            if (sg.Player.ShipArchetype != null)
            {
                ps = sg.Player.ShipArchetype;
            }
            else
            {
                ps = game.GameData.GetShip(sg.Player.ShipArchetypeCrc).Nickname;
            }
            Character.Ship      = game.GameData.GetShip(ps);
            Character.Equipment = new List <NetEquipment>();
            foreach (var eq in sg.Player.Equip)
            {
                var       hp = eq.Hardpoint;
                Equipment equip;
                if (eq.EquipName != null)
                {
                    equip = game.GameData.GetEquipment(eq.EquipName);
                }
                else
                {
                    equip = game.GameData.GetEquipment(eq.EquipHash);
                }
                if (equip != null)
                {
                    Character.Equipment.Add(new NetEquipment()
                    {
                        Equipment = equip, Hardpoint = hp, Health = 1
                    });
                }
            }
            if (Base != null)
            {
                lock (rtcs)
                {
                    client.SendPacket(new BaseEnterPacket()
                    {
                        Base = Base,
                        Ship = Character.EncodeLoadout(),
                        RTCs = rtcs.ToArray()
                    }, NetDeliveryMethod.ReliableOrdered);
                }
            }
            else
            {
                var sys = game.GameData.GetSystem(System);
                game.RequestWorld(sys, (world) =>
                {
                    World = world;
                    client.SendPacket(new SpawnPlayerPacket()
                    {
                        System      = System,
                        Position    = Position,
                        Orientation = Orientation,
                        Ship        = Character.EncodeLoadout()
                    }, NetDeliveryMethod.ReliableOrdered);
                    world.SpawnPlayer(this, Position, Orientation);
                });
            }
            var missionNum = sg.StoryInfo?.MissionNum ?? 0;

            if (game.GameData.Ini.ContentDll.AlwaysMission13)
            {
                missionNum = 14;
            }
            if (missionNum != 0 && (missionNum - 1) < game.GameData.Ini.Missions.Count)
            {
                msnRuntime = new MissionRuntime(game.GameData.Ini.Missions[missionNum - 1], this);
                msnRuntime.Update(TimeSpan.Zero);
            }
        }