Example #1
0
 public void HardReset()
 {
     reset();
     GuildManager.resetAllUpgrades();
     StatisticsTracker.HardReset();
     FieldInfo[] fields = typeof(Industries).GetFields();
     foreach (FieldInfo field in fields)
     {
         Industry ind = (Industry)field.GetValue(null);
         ind.startingVendors = 0;
         ind.apprentices     = 0;
         ind.SetRawVendors(0);
     }
     maxVendors                 = 3;
     renown                     = totalRenown = 0;
     money                      = 20;
     maxApprentices             = 0;
     currentApprentices         = 0;
     journeymen                 = 0;
     totalQuestsCompletedRenown = 0;
     questsCompletedRenown      = 0;
     skillPoints                = 0;
     totalSkillPoints           = 0;
     researchTime               = 0;
     StatisticsTracker.lifetimeMoney.setValue(money);
     builtItems = new List <Industry>();
     resetLevel = 1;
     upgrades.Clear();
     SetDefaultUpgrades();
     currentGuildmaster = new Master();
     miscInventory.Clear();
     unidentifiedRelics.Clear();
     AchievementsManager.setupUI();
 }
 void Awake()
 {
     tracker    = GetComponent <StatisticsTracker>();
     achiever   = new DataPercentage(1, 1, 1, 1);
     explorer   = new DataPercentage(0, 1, 0, 0.5f);
     killer     = new DataPercentage(0, 0, 1, 0.5f);
     socializer = new DataPercentage(1, 0.5f, 0, 0);
 }
        private Task <KafkaDataPayload> EnqueueWriteTask(KafkaDataPayload payload, CancellationToken cancellationToken)
        {
            var sendTask = new SocketPayloadSendTask(payload, cancellationToken);

            _sendTaskQueue.Add(sendTask);
            StatisticsTracker.QueueNetworkWrite(_endpoint, payload);
            return(sendTask.Tcp.Task);
        }
        private KafkaDataPayload EncodeProduceRequest(ProduceRequest request)
        {
            int totalCompressedBytes = 0;

            if (request.Payload == null)
            {
                request.Payload = new List <Payload>();
            }

            var groupedPayloads = (from p in request.Payload
                                   group p by new
            {
                p.Topic,
                p.Partition,
                p.Codec
            } into tpc
                                   select tpc).ToList();

            using (var message = EncodeHeader(request)
                                 .Pack(request.Acks)
                                 .Pack(request.TimeoutMS)
                                 .Pack(groupedPayloads.Count))
            {
                foreach (var groupedPayload in groupedPayloads)
                {
                    var payloads = groupedPayload.ToList();
                    message.Pack(groupedPayload.Key.Topic, StringPrefixEncoding.Int16)
                    .Pack(payloads.Count)
                    .Pack(groupedPayload.Key.Partition);

                    switch (groupedPayload.Key.Codec)
                    {
                    case MessageCodec.CodecNone:
                        message.Pack(Message.EncodeMessageSet(payloads.SelectMany(x => x.Messages)));
                        break;

                    case MessageCodec.CodecGzip:
                        var compressedBytes = CreateGzipCompressedMessage(payloads.SelectMany(x => x.Messages));
                        Interlocked.Add(ref totalCompressedBytes, compressedBytes.CompressedAmount);
                        message.Pack(Message.EncodeMessageSet(new[] { compressedBytes.CompressedMessage }));
                        break;

                    default:
                        throw new NotSupportedException(string.Format("Codec type of {0} is not supported.", groupedPayload.Key.Codec));
                    }
                }

                var result = new KafkaDataPayload
                {
                    Buffer        = message.Payload(),
                    CorrelationId = request.CorrelationId,
                    MessageCount  = request.Payload.Sum(x => x.Messages.Count)
                };
                StatisticsTracker.RecordProduceRequest(result.MessageCount, result.Buffer.Length, totalCompressedBytes);
                return(result);
            }
        }
 void OnGameEnded(object sender, EventArgs e)
 {
     timerIntervalSeconds.Stop();
     if (field.GameWon)
     {
         StatisticsTracker.GamesWon++;
         StatisticsTracker.TrySetPlayerNameOnNewHighscore(field.CurrentConfiguration, mineLabelTime.Value, this);
     }
     toolStripLabelDebugHelper.Text = field.GameWon ? "You win!" : "You lose!";
 }
Example #6
0
        private async Task ProcessSentTasksAsync(NetworkStream netStream, SocketPayloadSendTask sendTask)
        {
            if (sendTask == null)
            {
                return;
            }

            using (sendTask)
            {
                var failed = false;
                var sw     = Stopwatch.StartNew();
                try
                {
                    sw.Restart();
                    if (UseStatisticsTracker())
                    {
                        StatisticsTracker.IncrementGauge(StatisticGauge.ActiveWriteOperation);
                    }
                    if (OnWriteToSocketAttempt != null)
                    {
                        OnWriteToSocketAttempt(sendTask.Payload);
                    }
                    _log.DebugFormat("Sending data for CorrelationId:{0} Connection:{1}", sendTask.Payload.CorrelationId, Endpoint);
                    await netStream.WriteAsync(sendTask.Payload.Buffer, 0, sendTask.Payload.Buffer.Length).ConfigureAwait(false);

                    _log.DebugFormat("Data sent to CorrelationId:{0} Connection:{1}", sendTask.Payload.CorrelationId, Endpoint);
                    sendTask.Tcp.TrySetResult(sendTask.Payload);
                }
                catch (Exception ex)
                {
                    failed = true;
                    if (_disposeToken.IsCancellationRequested)
                    {
                        var exception = new ObjectDisposedException("Object is disposing.");
                        sendTask.Tcp.TrySetException(exception);
                        throw exception;
                    }

                    sendTask.Tcp.TrySetException(ex);
                    throw;
                }
                finally
                {
                    if (UseStatisticsTracker())
                    {
                        StatisticsTracker.DecrementGauge(StatisticGauge.ActiveWriteOperation);
                        StatisticsTracker.CompleteNetworkWrite(sendTask.Payload, sw.ElapsedMilliseconds, failed);
                    }
                }
            }
        }
Example #7
0
        public FSettings(Form parent, AdvancementTracker advancementTracker, AchievementTracker achievementTracker, StatisticsTracker statisticsTracker)
        {
            InitializeComponent();
            LoadSettings();
            this.advancementTracker = advancementTracker;
            this.achievementTracker = achievementTracker;
            this.statisticsTracker  = statisticsTracker;

            trackerGameVersion.Items.Clear();
            foreach (var version in TrackerSettings.SupportedVersions.Reverse())
            {
                trackerGameVersion.Items.Add(version);
            }
            trackerGameVersion.Text = tracker.GameVersion;
        }
Example #8
0
        protected override void Update(GameTime gameTime)
        {
            time.Update(gameTime);
            display.Update(time);

            //check minecraft version
            GameVersionDetector.Update();

            AdvancementTracker.Update(time);
            StatisticsTracker.Update(time);
            AchievementTracker.Update(time);

            //update each screen
            mainScreen.UpdateRecursive(time);
            foreach (var screen in altScreens.Values)
            {
                screen.UpdateRecursive(time);
            }

            //update notes screen
            if (NotesSettings.Instance.Enabled)
            {
                if (notesWindow == null || notesWindow.IsDisposed)
                {
                    notesWindow = new FNotes();
                    notesWindow.Show();
                }
                else if (TrackerSettings.IsPostExplorationUpdate)
                {
                    notesWindow.UpdateCurrentSave(AdvancementTracker.CurrentSaveName);
                }
                else
                {
                    notesWindow.UpdateCurrentSave(AchievementTracker.CurrentSaveName);
                }
            }
            else if (notesWindow != null && !notesWindow.IsDisposed)
            {
                notesWindow.Close();
            }

            TrackerSettings.Instance.Update();
            MainSettings.Instance.Update();
            OverlaySettings.Instance.Update();
            SpriteSheet.Update(time);

            base.Update(gameTime);
        }
    void Awake()
    {
        if (instance != null && instance != this)
        {
            Destroy(this.gameObject);
        }
        else
        {
            instance = this;
        }

        statTable = new Dictionary <int, Statistics>();

        // Wait for QuestTracker to initialize first
        StartCoroutine(Initialize());
    }
Example #10
0
        public Screen(Main main, GameWindow window, int width, int height)
        {
            Main               = main;
            Window             = window;
            GraphicsDevice     = main.GraphicsDevice;
            AdvancementTracker = main.AdvancementTracker;
            AchievementTracker = main.AchievementTracker;
            StatisticsTracker  = main.StatisticsTracker;
            Form               = Control.FromHandle(window.Handle) as Form;
            Form.Resize       += OnResize;
            Form.Icon          = new System.Drawing.Icon("assets/graphics/system/icon.ico");
            Form.ShowIcon      = true;
            DrawMode           = DrawMode.All;

            //only create swap chain if this is a secondary window
            if (window != main.Window)
            {
                SetWindowSize(width, height);
            }
            ResizeThis(new Rectangle(0, 0, width, height));
        }
Example #11
0
        protected override void Initialize()
        {
            //instantiate important objects
            time               = new Time();
            display            = new Display(GraphicsManager);
            AdvancementTracker = new AdvancementTracker();
            StatisticsTracker  = new StatisticsTracker();
            AchievementTracker = new AchievementTracker();

            //load assets
            SpriteSheet.Initialize(GraphicsDevice);
            FontSet.Initialize(GraphicsDevice);

            //instantiate screens
            altScreens = new Dictionary <Type, Screen>();
            mainScreen = new MainScreen(this);
            AddScreen(new OverlayScreen(this));
            mainScreen.Form.BringToFront();

            base.Initialize();
            UpdateHelper.TryCheckForUpdatesAsync();
        }
Example #12
0
        public static void ReportDrawTimeWhileSwitching(GuiWidget container, string firstWidgetName, string secondWidgetName, double switchTimeSeconds)
        {
            StatisticsTracker testTracker   = new StatisticsTracker("SwitchBetweenTabs");
            bool             clickFirstItem = true;
            bool             done           = false;
            bool             firstDraw      = true;
            AutomationRunner clickPreview;
            Stopwatch        timeSinceLastClick = Stopwatch.StartNew();
            Stopwatch        totalDrawTime      = Stopwatch.StartNew();
            int drawCount = 0;

            DrawEventHandler beforeDraw = (sender, e) =>
            {
                if (firstDraw)
                {
                    clickPreview = new AutomationRunner();
                    Task.Run(() =>
                    {
                        while (!done)
                        {
                            if (clickPreview != null && timeSinceLastClick.Elapsed.TotalSeconds > switchTimeSeconds)
                            {
                                if (clickFirstItem)
                                {
                                    clickPreview.ClickByName(firstWidgetName);
                                }
                                else
                                {
                                    clickPreview.ClickByName(secondWidgetName);
                                }
                                clickFirstItem = !clickFirstItem;
                                timeSinceLastClick.Restart();
                            }
                        }
                    });
                    firstDraw = false;
                }

                totalDrawTime.Restart();
            };

            container.DrawBefore += beforeDraw;

            DrawEventHandler afterDraw = null;

            afterDraw = (sender, e) =>
            {
                totalDrawTime.Stop();
                if (drawCount++ > 30 && testTracker.Count < 100)
                {
                    testTracker.AddValue(totalDrawTime.ElapsedMilliseconds);
                    if (testTracker.Count == 100)
                    {
                        Trace.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(testTracker));
                        container.DrawBefore -= beforeDraw;
                        container.DrawBefore -= afterDraw;
                        done = true;
                    }
                }
            };

            container.DrawAfter += afterDraw;
        }
 private void OnStatisticsMenuItemClick(object sender, EventArgs e)
 {
     StatisticsTracker.ShowStatistics(this);
 }
 private void OnLeaderboardMenuItemClick(object sender, EventArgs e)
 {
     StatisticsTracker.ShowLeaderboard(this);
 }
Example #15
0
 public FPickFavorites(AdvancementTracker advancementTracker, AchievementTracker achievementTracker, StatisticsTracker statisticsTracker)
 {
     InitializeComponent();
     LoadImageDictionaries();
     Populate(advancementTracker, achievementTracker, statisticsTracker);
     Text += " (" + TrackerSettings.Instance.GameVersion + ")";
 }
        private async Task ProcessReadTaskAsync(NetworkStream netStream, SocketPayloadReadTask readTask)
        {
            using (readTask)
            {
                try
                {
                    if (UseStatisticsTracker())
                    {
                        StatisticsTracker.IncrementGauge(StatisticGauge.ActiveReadOperation);
                    }
                    var readSize      = readTask.ReadSize;
                    var result        = new List <byte>(readSize);
                    var bytesReceived = 0;

                    while (bytesReceived < readSize)
                    {
                        readSize = readSize - bytesReceived;
                        var buffer = new byte[readSize];

                        if (OnReadFromSocketAttempt != null)
                        {
                            OnReadFromSocketAttempt(readSize);
                        }

                        bytesReceived = await netStream.ReadAsync(buffer, 0, readSize, readTask.CancellationToken).ConfigureAwait(false);

                        if (OnBytesReceived != null)
                        {
                            OnBytesReceived(bytesReceived);
                        }

                        if (bytesReceived <= 0)
                        {
                            using (_client)
                            {
                                _client = null;
                                if (_disposeToken.IsCancellationRequested)
                                {
                                    return;
                                }

                                throw new BrokerConnectionException(string.Format("Lost connection to server: {0}", _endpoint), _endpoint);
                            }
                        }

                        result.AddRange(buffer.Take(bytesReceived));
                    }

                    readTask.Tcp.TrySetResult(result.ToArray());
                }
                catch (Exception ex)
                {
                    if (_disposeToken.IsCancellationRequested)
                    {
                        var exception = new ObjectDisposedException(string.Format("Object is disposing (KafkaTcpSocket for endpoint: {0})", Endpoint));
                        readTask.Tcp.TrySetException(exception);
                        throw exception;
                    }

                    if (ex is BrokerConnectionException)
                    {
                        readTask.Tcp.TrySetException(ex);
                        if (_disposeToken.IsCancellationRequested)
                        {
                            return;
                        }
                        throw;
                    }

                    //if an exception made us lose a connection throw disconnected exception
                    if (_client == null || _client.Connected == false)
                    {
                        var exception = new BrokerConnectionException(string.Format("Lost connection to server: {0}", _endpoint), _endpoint);
                        readTask.Tcp.TrySetException(exception);
                        throw exception;
                    }

                    readTask.Tcp.TrySetException(ex);
                    if (_disposeToken.IsCancellationRequested)
                    {
                        return;
                    }

                    throw;
                }
                finally
                {
                    if (UseStatisticsTracker())
                    {
                        StatisticsTracker.DecrementGauge(StatisticGauge.ActiveReadOperation);
                    }
                }
            }
        }
Example #17
0
        private void Populate(AdvancementTracker advancementTracker, AchievementTracker achievementTracker, StatisticsTracker statisticsTracker)
        {
            advancementBoxes = new Dictionary <string, CheckBox>();
            criterionBoxes   = new Dictionary <string, CheckBox>();
            statisticBoxes   = new Dictionary <string, CheckBox>();

            if (TrackerSettings.IsPostExplorationUpdate)
            {
                foreach (var advancement in advancementTracker.FullAdvancementList)
                {
                    AddAdvancement(advancement.Key, advancement.Value);
                    foreach (var criterion in advancement.Value.Criteria)
                    {
                        AddCriterion(criterion);
                    }
                }
            }
            else
            {
                foreach (var achievement in achievementTracker.FullAchievementList)
                {
                    AddAdvancement(achievement.Key, achievement.Value);
                    foreach (var criterion in achievement.Value.Criteria)
                    {
                        AddCriterion(criterion);
                    }
                }
            }

            foreach (var statistic in statisticsTracker.ItemCountList)
            {
                AddStatistic(statistic);
            }
            CheckBoxes();
        }
Example #18
0
        public void reset()
        {
            foreach (Industry ind in builtItems)
            {
                ind.quantityStored = 0;
                ind.SetRawVendors(0);
                ind.setTimeRemaining(0);
                ind.level         = 0;
                ind.consumeAmount = 0;
                foreach (IndustryInput input in ind.inputs)
                {
                    Main.Destroy(input.arrow);
                }
                Main.Destroy(ind.craftingGridGO);
                ind.craftingGridGO = null;
                ind.apprentices    = 0;
                ind.resetCache();
            }
            currentApprentices = 0;
            currentVendors     = 0;
            builtItems         = new List <Industry>();
            //Debug.Log("digits: " + digits);
            //double digitsCur = BigInteger.Log10(money / moneyFloor);
            //Debug.Log(renown + "," + totalRenown);
            BigInteger spentRenown = totalRenown - renown;
            //Debug.Log("before:      " + lifetimeMoney);

            //TODO: Lifetime money -> renown calc is WRONG
            //Immediate reset after reseting will generate renown for doing NOTHING
            BigInteger newRenown = BigInteger.CubeRoot(StatisticsTracker.lifetimeMoney.value);
            BigInteger totRen    = newRenown;

            newRenown -= StatisticsTracker.lastResetRenownGain.value;
            StatisticsTracker.lastResetRenownGain.setValue(totRen);
            //Debug.Log("totalRenown1: " + totalRenown);
            newRenown /= 10000;
            //Debug.Log("totalRenown2: " + totalRenown);
            //Debug.Log("end: " + totalRenown + " - " + spentRenown + " + " + questsCompleted + " + " + newRenown + " = " + (totalRenown - spentRenown + questsCompleted));
            totalRenown += questsCompletedRenown + newRenown;
            renown       = totalRenown - spentRenown;
            StatisticsTracker.lifetimeRenown.addValue(questsCompletedRenown + newRenown);
            //skillPoints += (int)digitsCur;
            //moneyFloor *= 2;
            money = GetStartingCash();
            totalQuestsCompletedRenown = 0;
            questsCompletedRenown      = 0;

            /*StatisticsTracker.questsCompleted.resetValue();
             * StatisticsTracker.minQuestDifficulty.resetValue();
             * StatisticsTracker.maxQuestDifficulty.resetValue();*/
            StatisticsTracker.newLevelReset();
            _questTypeCompletion.Clear();
            if (StatisticsTracker.firstEnchantment.isAchieved())
            {
                StatisticsTracker.maxQuestDifficulty.addValue(2);
                StatisticsTracker.minQuestDifficulty.addValue(1);
            }
            if (StatisticsTracker.firstGuildmaster.isAchieved())
            {
                StatisticsTracker.maxQuestDifficulty.addValue(2);
                StatisticsTracker.minQuestDifficulty.addValue(1);
            }
            if (StatisticsTracker.relicsMade.value >= 1)
            {
                StatisticsTracker.maxQuestDifficulty.addValue(1);
            }
            if (StatisticsTracker.twentiethQuestCompleted.isAchieved())
            {
                StatisticsTracker.maxQuestDifficulty.addValue(2);
            }
            GuildManager.resetAllUpgrades();
        }
        public static void setupUI()
        {
            bool redraw = false;

            Dictionary <StatAchievement, GameObject> .Enumerator achlist = achLookup.GetEnumerator();
            while (achlist.MoveNext())
            {
                KeyValuePair <StatAchievement, GameObject> item = achlist.Current;
                item.Value.transform.Find("Image").GetComponent <Image>().sprite = SpriteLoader.getSpriteForResource(item.Key.achieveImage + (item.Key.isAchieved() ? "" : "_off"));
                if (item.Key is AchievementMulti)
                {
                    AchievementMulti mult = (AchievementMulti)item.Key;
                    int numChecked        = mult.getNumAchieved();
                    for (int j = 1; j <= mult.getNumValues(); j++)
                    {
                        Image img = item.Value.transform.Find("Check(" + j + ")").GetComponent <Image>();
                        if (j <= numChecked)
                        {
                            img.sprite = GuiManager.instance.checkOn;
                            img.color  = ColorHelper.DGREEN;
                        }
                        else
                        {
                            img.sprite = GuiManager.instance.checkOff;
                            img.color  = ColorHelper.DRED;
                        }
                    }
                    item.Value.transform.Find("Description").GetComponent <Text>().text = string.Format(Localization.translateToLocal(item.Key.description), Main.AsCurrency(mult.getNextValue(), 6));
                }
                else
                {
                    item.Value.transform.Find("Progress").GetComponent <Text>().text = item.Key.isAchieved() ? "Completed" : "In progress";
                }
                if (!item.Key.isHidden && !item.Value.activeSelf)
                {
                    redraw = true;
                }
            }
            Dictionary <IStat, GameObject> .Enumerator statlist = statLookup.GetEnumerator();
            while (statlist.MoveNext())
            {
                KeyValuePair <IStat, GameObject> item = statlist.Current;
                item.Value.transform.Find("Progress").GetComponent <Text>().text    = item.Key.getDisplay();
                item.Value.transform.Find("Description").GetComponent <Text>().text = item.Key.description;
                if (!item.Key.isHidden && !item.Value.activeSelf)
                {
                    redraw = true;
                }
            }
            if (redraw)
            {
                IEnumerator <StatAchievement> list = StatisticsTracker.getAchievementsList();
                int h = 0;
                while (list.MoveNext())
                {
                    StatAchievement item = list.Current;
                    if (!achLookup.ContainsKey(item))
                    {
                        continue;
                    }
                    GameObject obj = achLookup[item];
                    obj.transform.localPosition = new Vector3(11, -50 * h - 11, 0);
                    if (item.isHidden)
                    {
                        obj.SetActive(false);
                        continue;
                    }
                    obj.SetActive(true);
                    h++;
                }
                ((RectTransform)achievList.transform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 50 * h + 18);
                IEnumerator <IStat> list2 = StatisticsTracker.getStatsList();
                h = 0;
                while (list2.MoveNext())
                {
                    IStat item = list2.Current;
                    if (!statLookup.ContainsKey(item))
                    {
                        continue;
                    }
                    GameObject obj = statLookup[item];
                    obj.transform.localPosition = new Vector3(11, -50 * h - 11, 0);
                    if (item.isHidden)
                    {
                        obj.SetActive(false);
                        continue;
                    }
                    obj.SetActive(true);
                    h++;
                }
                ((RectTransform)statsList.transform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 50 * h + 18);
            }
        }
        public static void OneTimeSetup()
        {
            achievList = GuiManager.instance.achievementsArea.transform.Find("Achievements").GetChild(1).GetChild(0);
            statsList  = GuiManager.instance.achievementsArea.transform.Find("Statistics").GetChild(1).GetChild(0);
            IEnumerator <StatAchievement> list = StatisticsTracker.getAchievementsList();
            int h = 0;

            while (list.MoveNext())
            {
                GameObject      obj;
                StatAchievement item = list.Current;
                if (item.isHidden && !item.isSecret)
                {
                    continue;
                }
                if (item is AchievementMulti)
                {
                    obj = GameObject.Instantiate(PrefabManager.instance.ACHIEVEMENT_MULTI_LISTITEM, achievList) as GameObject;
                }
                else
                {
                    obj = GameObject.Instantiate(PrefabManager.instance.ACHIEVEMENT_LISTITEM, achievList) as GameObject;
                    obj.transform.Find("Progress").GetComponent <Text>().text = item.isAchieved() ? "Completed" : "In progress";
                }
                obj.transform.localPosition = new Vector3(11, -50 * h - 11, 0);
                obj.transform.Find("Name").GetComponent <Text>().text        = Localization.translateToLocal(item.achieveName);
                obj.transform.Find("Description").GetComponent <Text>().text = Localization.translateToLocal(item.description);
                obj.transform.Find("Image").GetComponent <Image>().sprite    = SpriteLoader.getSpriteForResource(item.achieveImage + (item.isAchieved() ? "":"_off"));
                achLookup.Add(item, obj);
                if (item.isSecret)
                {
                    obj.SetActive(false);
                    continue;
                }
                h++;
            }
            ((RectTransform)achievList.transform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 50 * h + 18);

            IEnumerator <IStat> list2 = StatisticsTracker.getStatsList();

            h = 0;
            while (list2.MoveNext())
            {
                IStat item = list2.Current;
                if (item.isHidden)
                {
                    continue;
                }
                GameObject obj = GameObject.Instantiate(PrefabManager.instance.ACHIEVEMENT_LISTITEM, statsList) as GameObject;
                obj.transform.localPosition = new Vector3(11, -50 * h - 11, 0);
                Transform trans;
                trans = obj.transform.Find("Name");
                trans.GetComponent <Text>().text = Localization.translateToLocal(item.statName);
                trans.localPosition -= new Vector3(35, 0, 0);
                trans = obj.transform.Find("Description");
                trans.GetComponent <Text>().text = item.description;
                trans.localPosition -= new Vector3(35, 0, 0);
                string txt = item.getDisplay();
                obj.transform.Find("Progress").GetComponent <Text>().text = txt;
                obj.transform.Find("Image").gameObject.SetActive(false);
                obj.transform.Find("BG").gameObject.SetActive(false);
                statLookup.Add(item, obj);
                h++;
            }
            ((RectTransform)statsList.transform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 50 * h + 18);
        }
Example #21
0
        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            info.AddValue("SaveVersion", 24);
            info.AddValue("money", money.ToString());
            info.AddValue("moneyFloor", moneyFloor.ToString());
            //info.AddValue("lifetimeMoney", StatisticsTracker.lifetimeMoney.ToString());
            info.AddValue("renown", renown.ToString());
            info.AddValue("totalRenown", totalRenown.ToString());
            info.AddValue("maxVendors", maxVendors);
            info.AddValue("currentVendors", currentVendors);
            info.AddValue("maxApprentices", maxApprentices);
            info.AddValue("journeymen", journeymen);
            info.AddValue("currentApprentices", currentApprentices);
            info.AddValue("totalQuestsCompleted", totalQuestsCompletedRenown);
            info.AddValue("questsCompleted", questsCompletedRenown);
            info.AddValue("skillPoints", skillPoints.ToString());
            info.AddValue("totalSkillPoints", totalSkillPoints.ToString());
            info.AddValue("resetLevel", resetLevel);
            info.AddValue("researchTime", researchTime);
            info.AddValue("miscInventorySize", miscInventory.Count);
            for (int i = 0; i < miscInventory.Count; i++)
            {
                info.AddValue("miscInventory_" + i, miscInventory[i], typeof(ItemStack));
            }
            info.AddValue("unidentifiedRelicsSize", unidentifiedRelics.Count);
            for (int i = 0; i < unidentifiedRelics.Count; i++)
            {
                info.AddValue("unidentifiedRelics_" + i, unidentifiedRelics[i], typeof(ItemStack));
            }
            info.AddValue("builtItemsSize", builtItems.Count);
            for (int i = 0; i < builtItems.Count; i++)
            {
                info.AddValue("buildItemID_" + i, builtItems[i].saveName);
                info.AddValue("builtItems_" + i, builtItems[i], typeof(Industry));
            }

            FieldInfo[] fields = typeof(Industries).GetFields();
            info.AddValue("allIndustries", fields.Length);
            for (int i = 0; i < fields.Length; i++)
            {
                FieldInfo field = fields[i];
                Industry  item  = (Industry)field.GetValue(null);

                info.AddValue("allIndustriesID_" + i, item.saveName);
                info.AddValue("allIndustriesX_" + i, item.getGridPos().x);
                info.AddValue("allIndustriesY_" + i, item.getGridPos().y);
                info.AddValue("allIndustriesAB_" + i, item.doAutobuild);
                info.AddValue("allIndustriesABLvl_" + i, item.autoBuildLevel);
                info.AddValue("allIndustriesABMag_" + i, item.autoBuildMagnitude);
                info.AddValue("allIndustriesABVend_" + i, item.startingVendors);
            }

            //Debug.Log("Saving " + QuestManager.activeQuests.Count + " active quests");
            info.AddValue("activeQuestsSize", QuestManager.activeQuests.Count);
            for (int i = 0; i < QuestManager.activeQuests.Count; i++)
            {
                info.AddValue("activeQuests_" + i, QuestManager.activeQuests[i], typeof(Quest));
            }
            //Debug.Log("Saving " + QuestManager.availableQuests.Count + " available quests");
            info.AddValue("availableQuestsSize", QuestManager.availableQuests.Count);
            for (int i = 0; i < QuestManager.availableQuests.Count; i++)
            {
                info.AddValue("availableQuests_" + i, QuestManager.availableQuests[i], typeof(Quest));
            }
            info.AddValue("availableRelicsSize", QuestManager.availableRelics.Count);
            for (int i = 0; i < QuestManager.availableRelics.Count; i++)
            {
                info.AddValue("availableRelics_" + i, QuestManager.availableRelics[i], typeof(ItemStack));
            }
            info.AddValue("questTypeCompletion", questTypeCompletion, typeof(Dictionary <string, long>));
            info.AddValue("newQuestTimer", QuestManager.getNewQuestTimer());
            info.AddValue("questEquipTimer", QuestManager.getEquipTimer());
            GuildManager.writeSaveData(ref info, ref context);
            StatisticsTracker.serializeAllStats(ref info, ref context);
            info.AddValue("currentGuildmaster", currentGuildmaster, typeof(Master));
            DeepGoalsTypes.serialize(ref info, ref context);
            info.AddValue("ResearchManager.lastViewDate", ResearchManager.lastViewDate.ToLongTimeString());
            TutorialManager.serialize(ref info, ref context);
        }
 public void Start()
 {
     StatisticsTracker.Initialise(display);
 }
Example #23
0
        public PlayerInfo(SerializationInfo info, StreamingContext context)
        {
            //Main.instance.player.SetDefaultUpgrades();
#pragma warning disable 0168
            try {
                Main.saveVersionFromDisk = info.GetInt32("SaveVersion");
            }
            catch (Exception ex) {
                Main.saveVersionFromDisk = 0;
            }
#pragma warning restore 0168
            // To future self: this turned into a dirty hack
            // Because how how upgrades were handled
            // :(
            Main.instance.player.builtItems = new List <Industry>();
            Main.instance.player.money      = BigInteger.Parse(info.GetString("money"));
            Main.instance.player.moneyFloor = BigInteger.Parse(info.GetString("moneyFloor"));
            //StatisticsTracker.lifetimeMoney.setValue(BigInteger.Parse(info.GetString("lifetimeMoney")));
            Main.instance.player.renown      = BigInteger.Parse(info.GetString("renown"));
            Main.instance.player.totalRenown = BigInteger.Parse(info.GetString("totalRenown"));

            Main.instance.player.maxVendors     = info.GetInt32("maxVendors");
            Main.instance.player.currentVendors = info.GetInt32("currentVendors");
            Main.instance.player.maxApprentices = info.GetInt32("maxApprentices");
            if (Main.saveVersionFromDisk >= 6)
            {
                Main.instance.player.journeymen = info.GetInt32("journeymen");
            }
            Main.instance.player.currentApprentices         = info.GetInt32("currentApprentices");
            Main.instance.player.totalQuestsCompletedRenown = info.GetInt64("totalQuestsCompleted");
            Main.instance.player.questsCompletedRenown      = info.GetInt64("questsCompleted");


            if (Main.saveVersionFromDisk < 8)
            {
                Main.instance.player.skillPoints = info.GetInt32("skillPoints");
            }
            else
            {
                Main.instance.player.skillPoints      = BigInteger.Parse(info.GetString("skillPoints"));
                Main.instance.player.totalSkillPoints = BigInteger.Parse(info.GetString("totalSkillPoints"));
            }


            Main.instance.player.resetLevel   = info.GetInt32("resetLevel");
            Main.instance.player.researchTime = (float)info.GetDouble("researchTime");

            int num;
            num = info.GetInt32("miscInventorySize");
            //miscInventory = new List<ItemStack>();
            for (int o = 0; o < num; o++)
            {
                Main.instance.player.miscInventory.Add((ItemStack)info.GetValue("miscInventory_" + o, typeof(ItemStack)));
            }
            num = info.GetInt32("unidentifiedRelicsSize");
            //unidentifiedRelics = new List<ItemStack>();
            for (int o = 0; o < num; o++)
            {
                Main.instance.player.unidentifiedRelics.Add((ItemStack)info.GetValue("unidentifiedRelics_" + o, typeof(ItemStack)));
            }
            num = info.GetInt32("builtItemsSize");
            for (int o = 0; o < num; o++)
            {
                Industry temp;
                if (Main.saveVersionFromDisk >= 14)
                {
                    string id = info.GetString("buildItemID_" + o);
                    temp = (Industry)info.GetValue("builtItems_" + o, typeof(Industry));
                    Main.instance.player.industriesFromDisk.Add(new IndustryLoadWrapper(temp, id));
                }
                else
                {
                    int id = info.GetInt32("buildItemID_" + o);
                    temp = (Industry)info.GetValue("builtItems_" + o, typeof(Industry));
                    Main.instance.player.industriesFromDisk.Add(new IndustryLoadWrapper(temp, id));
                }
            }

            if (Main.saveVersionFromDisk >= 13)
            {
                FieldInfo[] fields = typeof(Industries).GetFields();
                num = info.GetInt32("allIndustries");
                for (int o = 0; o < num; o++)
                {
                    if (Main.saveVersionFromDisk >= 14)
                    {
                        Industry item = GameRegistry.GetIndustryByID(info.GetString("allIndustriesID_" + o));
                        item.setGridPos(new Vector3((float)info.GetDouble("allIndustriesX_" + o), (float)info.GetDouble("allIndustriesY_" + o), 0));
                        if (Main.saveVersionFromDisk >= 17)
                        {
                            item.doAutobuild        = info.GetBoolean("allIndustriesAB_" + o);
                            item.autoBuildLevel     = info.GetInt32("allIndustriesABLvl_" + o);
                            item.autoBuildMagnitude = info.GetInt32("allIndustriesABMag_" + o);
                            if (Main.saveVersionFromDisk >= 19)
                            {
                                item.startingVendors = info.GetInt32("allIndustriesABVend_" + o);
                            }
                        }
                    }
                    else
                    {
                        FieldInfo field = fields[o];
                        Industry  item  = (Industry)field.GetValue(null);
                        item.setGridPos(new Vector3((float)info.GetDouble("allIndustriesX_" + o), (float)info.GetDouble("allIndustriesY_" + o), 0));
                    }
                }
            }

            num = info.GetInt32("activeQuestsSize");
            //Debug.Log("Reading " + num + " active quests");
            for (int o = 0; o < num; o++)
            {
                Quest temp = (Quest)info.GetValue("activeQuests_" + o, typeof(Quest));
                //quest obstacle type data from disk isn't actually available yet
                Main.instance.player.activeQuestsFromDisk.Add(new QuestLoadWrapper(temp));
            }
            num = info.GetInt32("availableQuestsSize");
            //Debug.Log("Reading " + num + " available quests");
            for (int o = 0; o < num; o++)
            {
                Quest temp = (Quest)info.GetValue("availableQuests_" + o, typeof(Quest));
                //quest obstacle type data from disk isn't actually available yet
                Main.instance.player.questsFromDisk.Add(new QuestLoadWrapper(temp));
            }
            num = info.GetInt32("availableRelicsSize");
            for (int o = 0; o < num; o++)
            {
                QuestManager.availableRelics.Add((ItemStack)info.GetValue("availableRelics_" + o, typeof(ItemStack)));
            }
            if (Main.saveVersionFromDisk >= 10)
            {
                Main.instance.player._questTypeCompletion = (Dictionary <string, long>)info.GetValue("questTypeCompletion", typeof(Dictionary <string, long>));
            }
            float f = (float)info.GetDouble("newQuestTimer");
            QuestManager.LoadTimerFromSave(f);
            if (Main.saveVersionFromDisk >= 11)
            {
                QuestManager.setEquipTimer((float)info.GetDouble("questEquipTimer"));
            }

            if (Main.saveVersionFromDisk >= 2)
            {
                GuildManager.readSaveData(ref info, ref context);
            }
            if (Main.saveVersionFromDisk >= 7)
            {
                StatisticsTracker.deserializeAllStats(ref info, ref context);
            }
            if (Main.saveVersionFromDisk >= 8)
            {
                Main.instance.player.currentGuildmaster = (Master)info.GetValue("currentGuildmaster", typeof(Master));
            }
            else
            {
                Main.instance.player.currentGuildmaster = new Master();
            }
            if (Main.saveVersionFromDisk >= 12)
            {
                DeepGoalsTypes.deserialize(ref info, ref context);
            }
            if (Main.saveVersionFromDisk >= 22)
            {
                ResearchManager.lastViewDate = DateTime.Parse(info.GetString("ResearchManager.lastViewDate"));
            }
            TutorialManager.deserialize(ref info, ref context);
        }