// check if goal is reached and display level summary. void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.name == "CarBody") { Timer.Finished(); PlayerReset.SetLevelCompleted(); MoneyLevelCompletedText.text = "COINS COLLECTED: " + MoneyPickup.GetEarnedLevelMoney(); if (!PlayerValues.Player.UnlockedLevels.Contains(SceneManager.GetActiveScene().buildIndex)) { PlayerValues.Player.money += 100; PlayerValues.Player.UnlockedLevels.Add(SceneManager.GetActiveScene().buildIndex); MoneyLevelCompletedText.text = "<color=lime>LEVEL COMPLETED FOR THE FIRST TIME!</color>\n\n <color=yellow>COIN BONUS:</color> <color=orange>100.</color>\n\n <color=yellow>COINS COLLECTED:</color> <color=orange>" + (MoneyPickup.GetEarnedLevelMoney() + 100 + "</color>"); } LevelCompletedCanvas.enabled = true; Destroy(MoneyText); Time.timeScale = 0.1f; Time.fixedDeltaTime = 0.02f * Time.timeScale; LevelCompleted = true; SaveProgress(SceneManager.GetActiveScene().buildIndex); } }
//Save the earned money and the completed level if it's progress. public static void SaveProgress(int level) { PlayerValues.Player.money = MoneyPickup.GetTotalMoney(); if (CheckProgress(level)) { PlayerValues.Player.level = level; } SaveSystem.Save(); }
protected void SpawnMoneyPickup() { int rangeValue = (int)Mathf.Sqrt(maxHealth); int moneyValue = Random.Range(rangeValue / 2, rangeValue * 2) * moneyValueMultiplier; if (moneyValue <= 0) { return; } GameObject o = Instantiate(moneyPickupPrefab, transform.position, Quaternion.identity) as GameObject; MoneyPickup moneyPickup = o.GetComponent <MoneyPickup>(); moneyPickup.value = moneyValue; moneyPickup.Init(player); }
private static void ShareTomeMoney(On.RoR2.MoneyPickup.orig_OnTriggerStay orig, MoneyPickup self, Collider other) { #region Sharedmoney if ((self.baseObject == null) || (!ShareSuite.MoneyIsShared.Value)) { orig(self, other); return; } int amount; if (self.shouldScale) { amount = (int)(self.baseGoldReward * Mathf.Pow(Run.instance.difficultyCoefficient, 1.25f)); } else { amount = self.baseGoldReward; } orig(self, other); if (self.GetFieldValue <bool>("alive")) { return; } // Collect reward from tome and put it into shared pool SharedMoneyValue += amount; if (!ShareSuite.MoneyScalarEnabled.Value || !NetworkServer.active) { return; } AddToSharedMoneyValue(amount); #endregion }