private void DoResearch() { //Set the Target Research _clickedButton = EventSystem.current.currentSelectedGameObject; string buttonName = _clickedButton.name; int researchId = Int32.Parse(buttonName); Research research = null; CharacterResearch characterResearch = null; for (int i = 0; i < _researches.Count; i++) { if (_researches[i].Id == researchId) { research = _researches[i]; break; } } if (research == null) { throw new Exception("Research is not available "); } research.Print(); for (int i = 0; i < _characterResearches.Count; i++) { if (_characterResearches[i].ResearchId == researchId) { characterResearch = _characterResearches[i]; break; } } int nextLevel = characterResearch != null ? characterResearch.Level + 1 : 1; //Check criteria if (!ResearchUpgradeIsValid(research)) { _messagePanelHandler.ShowMessage("Invalid Research!", MessagePanel.PanelType.Ok); return; } //Process the pay var payAmount = research.CalculatePrice(nextLevel); if (_characterManager.CharacterSetting.Coin < payAmount) { _messagePanelHandler.ShowMessage("You don't have enough Coin ! ", MessagePanel.PanelType.Ok); return; } _characterManager.AddCharacterSetting("Coin", -payAmount); MakeResearching(research, nextLevel); NewResearchInProgress(researchId); _messagePanelHandler.ShowMessage(research.Name + " is in progress ! ", MessagePanel.PanelType.Ok); }
void Start() { _tooltip = Tooltip.Instance(); if (Research == null) { return; } var images = GetComponentsInChildren <Image>(); var texts = GetComponentsInChildren <TextMeshProUGUI>(); var buttons = GetComponentsInChildren <Button>(); images[1].sprite = Research.GetSprite(); texts[0].text = "Level " + Level; if (Level >= Research.MaxLevel) { buttons[0].interactable = false; texts[1].text = "MAX"; } else { texts[1].text = Research.CalculatePrice(Level).ToString(); } }