// Update is called once per frame void Update() { if (gc == null) { gc = GameObject.FindGameObjectWithTag("GameController").GetComponent <gamecontroller>(); currentabilities = gc.getAbilities(); } if (manapercentage > 0) { manapercentage -= Time.deltaTime; } float recharge_factor = 1; if (GameObject.FindGameObjectsWithTag("Monster").Length == 0) { recharge_factor = 3; } ChangeMana(Time.deltaTime * manaRate * recharge_factor); //make sure we have the input manager if (inputManager == null) { inputManager = GameObject.FindGameObjectWithTag("InputManager").GetComponent <InputManager> (); } // // Check for monster summon by number OR for trap activation // if (Input.GetKeyDown (KeyCode.Alpha1)) { // // Queue monster 1 // toBeSummoned = true; // monsterToSummon = 1; // } else if (Input.GetKeyDown (KeyCode.Alpha2)) { // // Queue monster 2 // toBeSummoned = true; // monsterToSummon = 2; // } else if (Input.GetKeyDown (KeyCode.Alpha3)) { // // Queue monster 3 // toBeSummoned = true; // monsterToSummon = 3; // } else if (Input.GetKeyDown (KeyCode.Alpha4)) { // // Queue monster 4 // toBeSummoned = true; // monsterToSummon = 4; // } // // // Check for summon zone // else if (Input.GetKeyDown ("q") && toBeSummoned) { // zoneToSummon = "q"; // SummonMonster (); // } else if (Input.GetKeyDown ("w") && toBeSummoned) { // zoneToSummon = "w"; // SummonMonster (); // } else if (Input.GetKeyDown ("e") && toBeSummoned) { // zoneToSummon = "e"; // SummonMonster (); // } else if (Input.GetKeyDown ("a") && toBeSummoned) { // zoneToSummon = "a"; // SummonMonster (); // } else if (Input.GetKeyDown ("s") && toBeSummoned) { // zoneToSummon = "s"; // SummonMonster (); // } else if (Input.GetKeyDown ("d") && toBeSummoned) { // zoneToSummon = "d"; // SummonMonster (); // } // // // Check for trap // else if (Input.GetKeyDown ("t")) { // trapToBeActivated = true; // } monsterSpawnTransforms.Sort((p1, p2) => Vector3.Distance(p1.position, heroTransform.position).CompareTo(Vector3.Distance(p2.position, heroTransform.position))); if (inputManager.GetDmNum() != -1) { toBeSummoned = true; monsterToSummon = inputManager.GetDmNum(); if (((monsterToSummon < 3) && (gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.meleemonsters))) || ((monsterToSummon >= 3) && (gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.specialmonsters)))) { SummonMonster(); } } else if (inputManager.GetDmSpell() != -1) { trapToBeActivated = true; trapType = inputManager.GetDmSpell(); if (gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.spells)) { ActivateTrap(); } } // ESC key to cancel any queued actions else if (Input.GetKeyDown(KeyCode.Escape)) { CleanInput(); } else if (Input.GetKeyDown(KeyCode.L)) { if (gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.infintemana)) { infiniteMana(); } } infiniteManaCounter += Time.deltaTime; }
// Update is called once per frame void Update() { //get a reference to the hero if (hero == null) { hero = GameObject.FindGameObjectWithTag("Hero").GetComponent <HeroController>(); } //get a reference to the DM controller? if (dmcontroller == null) { dmcontroller = GameObject.FindGameObjectWithTag("DMController").GetComponent <DmController>(); } //get a reference to gamecontroller if (gc == null) { gc = GameObject.FindGameObjectWithTag("GameController").GetComponent <gamecontroller>(); currentabilities = gc.getAbilities(); if (!gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.meleemonsters)) { monstericons[0].SetActive(false); monstericons[1].SetActive(false); } if (!gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.specialmonsters)) { monstericons[2].SetActive(false); monstericons[3].SetActive(false); } if (!gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.spells)) { trapicons[0].SetActive(false); trapicons[1].SetActive(false); } if (!gamecontroller.HasFlag(currentabilities, gamecontroller.DMAbilities.infintemana)) { manaspellicon.SetActive(false); } } //manage hero health slider if (heroHealthSlider == null) { heroHealthSlider = hero.getHeroHealthSlider(); } heroHealthSlider.maxValue = hero.getMaxHealth(); heroHealthSlider.value = hero.getHealth(); livestext.text = "Lives: " + hero.getLives(); //manage hero stamina slider if (heroStaminaSlider == null) { heroStaminaSlider = hero.getHeroStaminaSlider(); } heroStaminaSlider.maxValue = hero.getMaxStamina(); heroStaminaSlider.value = hero.getStamina(); //manage DM mana slider dmManaSlider.maxValue = dmcontroller.GetMaxMana(); dmManaSlider.value = dmcontroller.GetManaCount(); //manage DM infinite mana code; if (dmcontroller.getisinfinitemana()) { infinitemana.SetActive(true); infinitemana.GetComponentInChildren <Slider>().maxValue = 5f; infinitemana.GetComponentInChildren <Slider>().value = dmcontroller.getmanapercentage(); } else { infinitemana.SetActive(false); } //manage DM monster icons for (int i = 0; i < monstericons.Length; i++) { if (dmcontroller.GetManaCount() > ((i + 1) * 10) || dmcontroller.getisinfinitemana()) { monstericons[i].GetComponentInChildren <Text>().color = Color.cyan; } else { monstericons[i].GetComponentInChildren <Text>().color = Color.black; } } //manage DM trap icons if (dmcontroller.GetManaCount() >= 55) { trapicons[0].GetComponentInChildren <Text>().color = Color.cyan; } else { trapicons[0].GetComponentInChildren <Text>().color = Color.black; } if (dmcontroller.GetManaCount() >= 55) { trapicons[1].GetComponentInChildren <Text>().color = Color.cyan; } else { trapicons[1].GetComponentInChildren <Text>().color = Color.black; } //handle infinite mana spell if (dmcontroller.checkInfinteMana()) { manaspellicon.GetComponentInChildren <Text>().color = Color.cyan; } else { manaspellicon.GetComponentInChildren <Text>().color = Color.black; } //check if we need to show the game-over screen if (hero.getDead()) { if (!over) { gameoverscreen.SetActive(true); over = true; Invoke("nextlevel", 3f); } } }