コード例 #1
0
    // 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;
    }
コード例 #2
0
    // 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);
            }
        }
    }