Пример #1
0
        private void SetPDALog(List <PDALogEntry> logEntries)
        {
            Log.Info("Received initial sync packet with " + logEntries.Count + " pda log entries");

            using (packetSender.Suppress <PDALogEntryAdd>())
            {
                Dictionary <string, PDALog.Entry> entries = (Dictionary <string, PDALog.Entry>)(typeof(PDALog).GetField("entries", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null));

                foreach (PDALogEntry logEntry in logEntries)
                {
                    if (!entries.ContainsKey(logEntry.Key))
                    {
                        PDALog.EntryData entryData;
                        PDALog.GetEntryData(logEntry.Key, out entryData);
                        PDALog.Entry entry = new PDALog.Entry();
                        entry.data      = entryData;
                        entry.timestamp = logEntry.Timestamp;
                        entries.Add(entryData.key, entry);

                        if (entryData.key == "Story_AuroraWarning4")
                        {
                            CrashedShipExploder.main.ReflectionCall("SwapModels", false, false, new object[] { true });
                        }
                    }
                }
            }
        }
Пример #2
0
 public static void Prefix(PDALog.Entry entry)
 {
     if (entry != null)
     {
         NitroxServiceLocator.LocateService <PDAManagerEntry>().LogAdd(entry);
     }
 }
Пример #3
0
        private void SetPDALog(List <PDALogEntry> logEntries)
        {
            Log.Info($"Received initial sync packet with {logEntries.Count} pda log entries");

            using (packetSender.Suppress <PDALogEntryAdd>())
            {
                Dictionary <string, PDALog.Entry> entries = PDALog.entries;

                foreach (PDALogEntry logEntry in logEntries)
                {
                    if (logEntry.Key != null && !entries.ContainsKey(logEntry.Key))
                    {
                        if (PDALog.GetEntryData(logEntry.Key, out PDALog.EntryData entryData))
                        {
                            PDALog.Entry entry = new PDALog.Entry();
                            entry.data      = entryData;
                            entry.timestamp = logEntry.Timestamp;
                            entries.Add(entryData.key, entry);

                            if (entryData.key == "Story_AuroraWarning4")
                            {
                                CrashedShipExploder.main.SwapModels(true);
                            }
                        }
                    }
                }
            }
        }
Пример #4
0
        private void Process(ClientStoryGoal msg)
        {
            using (new MessageBlocker()) {
                if (msg.key == "AuroraRadiationFixed")
                {
                    var radiation = LeakingRadiation.main;
                    radiation.ReflectionCall("OnConsoleCommand_fixleaks");
                    radiation.ReflectionCall("OnConsoleCommand_decontaminate");
                }

                if (msg.key == "Infection_Progress5")
                {
                    Player.main.infectedMixin.RemoveInfection();
                }

                // Story.StoryGoalManager.main.completedGoals.Add(msg.key);
                Story.StoryGoalManager.main.OnGoalComplete(msg.key);

                if (msg.goal == Story.GoalType.PDA)
                {
                    var entries = PDALog.Serialize();
                    if (!entries.ContainsKey(msg.key))
                    {
                        PDALog.EntryData data;
                        if (PDALog.GetEntryData(msg.key, out data))
                        {
                            PDALog.Entry entry = new PDALog.Entry();
                            entry.data      = data;
                            entry.timestamp = (float)msg.timestamp;
                            entries.Add(data.key, entry);
                        }
                    }
                }
            }
        }
Пример #5
0
        public override void Process(PDALogEntryAdd packet)
        {
            using (packetSender.Suppress <PDALogEntryAddProcessor>())
            {
                Dictionary <string, PDALog.Entry> entries = (Dictionary <string, PDALog.Entry>)(typeof(PDALog).GetField("entries", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null));

                if (!entries.ContainsKey(packet.Key))
                {
                    if (!PDALog.GetEntryData(packet.Key, out PDALog.EntryData entryData))
                    {
                        entryData      = new PDALog.EntryData();
                        entryData.key  = packet.Key;
                        entryData.type = PDALog.EntryType.Invalid;
                    }

                    PDALog.Entry entry = new PDALog.Entry();
                    entry.data      = entryData;
                    entry.timestamp = packet.Timestamp;
                    entries.Add(entryData.key, entry);
                }
            }
        }
Пример #6
0
        public override void Process(PDALogEntryAdd packet)
        {
            using (packetSender.Suppress <PDALogEntryAddProcessor>())
            {
                Dictionary <string, PDALog.Entry> entries = PDALog.entries;

                if (!entries.ContainsKey(packet.Key))
                {
                    if (!PDALog.GetEntryData(packet.Key, out PDALog.EntryData entryData))
                    {
                        entryData      = new PDALog.EntryData();
                        entryData.key  = packet.Key;
                        entryData.type = PDALog.EntryType.Invalid;
                    }

                    PDALog.Entry entry = new PDALog.Entry();
                    entry.data      = entryData;
                    entry.timestamp = packet.Timestamp;
                    entries.Add(entryData.key, entry);
                }
            }
        }
Пример #7
0
 public void LogAdd(PDALog.Entry entry)
 {
     packetSender.Send(new PDALogEntryAdd(entry.data.key, entry.timestamp));
 }
Пример #8
0
        public void LogAdd(PDALog.Entry entry)
        {
            PDALogEntryAdd EntryChanged = new PDALogEntryAdd(entry.data.key, entry.timestamp);

            packetSender.Send(EntryChanged);
        }