public void ChangeValue() { string n = gameObject.name; Text t = gameObject.GetComponent <Text>(); resourceManager.Resource r = RM.resources.Find(e => e.name == n); if (showName == true) { t.text = r.name + ": " + r.value; } else { t.text = r.value.ToString(); } if (sprite == false) { Sprite s = RM.images.Find(e => e.name == n).img; Image g = transform.parent.GetComponent <Image>(); if (g == null) { g = transform.parent.GetComponentInChildren <Image>(); } g.sprite = s; sprite = true; } }
public void Load() //Loads the save file { if (SaveLoad.UnbuildSave()) { for (int i = 0; i < SaveLoad.stageInts.Count; i++) { if (SaveLoad.stageInts[i] > 0) //Checks if the stage exists, allows remembering grave positions { graves[i].plant(SaveLoad.plants[i]); //Passes the name of the plant and lets graveController handle getting the further details if (SaveLoad.stageInts[i] > 1) //If stage is larger than 1, then update grave to that point. { graves[i].stage = SaveLoad.stageInts[i] - 1; //Due to how nextStage() works, we have to remove one from the current stage to get to the intended one graves[i].nextStage(); } graves[i].LoadResources(SaveLoad.gResources[i]); } } if (SaveLoad.resources.Count > 0) { foreach (resourceManager.Resource res in SaveLoad.resources) //Fills the resources back in, was the simplest way to do it that I could think of { resourceManager.Resource r = resourceManager.resources.Find(resource => resource.name == res.name); if (r != null) { r.value = res.value; } } } } else { foreach (resourceManager.Resource res in resourceManager.resources) { res.value = res.defaultValue; } } GetComponent <Events>().OnLoad.Invoke(); }
public void give() { int full = 0; foreach (graveResource resource in requiredResources) { resourceManager.Resource giveResource = resourceManager.resources.Find(r => r.name == resource.name); resource.current += giveResource.RemoveForce(resource.needed - resource.current); if (resource.current >= resource.needed) { full += 1; } } //Debug.Log(full + " Full " + requiredResources.Count + " Capacity"); if (full >= requiredResources.Count) { nextStage(); } sc.OnValueChange.Invoke(); }
void FixedUpdate() { //Debug.Log("UPDATING"); if (startTimer) { remainingTime -= Time.deltaTime; timer.text = (remainingTime).ToString("0.0"); } if (remainingTime <= 0 && win == false) { startTimer = false; //Time.timeScale = 0; playerLostScreen.SetActive(true); } else if (win == true && winOver == false) { startTimer = false; //Time.timeScale = 0; changeResource = resourceManager.resources.Find(name => name.name == resourceName); changeResource.Add(resourceAmount); playerWonScreen.SetActive(true); winOver = true; } }