// Update is called once per frame
	void Update () {
		if (!enemyMonster) {
			enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
		}

		if (!isPlayerDefeated) {
			if (Input.GetMouseButtonDown(0) && eventSystem.currentSelectedGameObject == null && !eventSystem.IsPointerOverGameObject()) {
				if (playerClass.GetCurrentStatus() == StatusEffect.Para) {
					if (Random.value < .4) { // if player is paralyzed, taps work only sometimes
						playerClass.ChargeEnergy();

					}
				} else {
					playerClass.ChargeEnergy();
				}
				enemyMonster.TakeDamage(playerClass.GetAttackStat());
			}
		
			if (playerClass.GetCurrentHealth() <= 0) {
				// show canvas that says, "you died" and offer buttons to quit or load from last save
				battleResultsController.gameObject.SetActive(true);
				battleResultsController.LoadLoseBattleResults();

				isPlayerDefeated = true;
			} 
		}
	}
示例#2
0
    private void SpawnNPCs(List <Point> openTiles, int count)
    {
        for (int i = 0; i < count; i++)
        {
            // Choose a random tile
            Point t = openTiles[rand.Next(openTiles.Count)];

            // Place a monster
            EnemyMonster monster = Place <EnemyMonster>(t.x, t.y);
            monster.stats = new Stats(monster, (GameManager.Manager.FLOOR_START - floor) + 1);

            switch (Random.Range(0, 4))
            {
            case 0:
                monster.power = new Poison(0.5f, 5);
                break;

            case 1:
                monster.power = new BasicRanged(1, 3);
                break;

            case 2:
                monster.power = new BasicMelee(1);
                break;

            case 3:
                monster.power = new BounceBack(1);
                break;
            }

            openTiles.Remove(t);
        }
    }
	void Update () {
		// deactivate pause button when battle results are activated
		if (pauseButton.activeSelf) {
			pauseButton.SetActive(false);
		}


		if (!enemyMonster) {
			enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
		}

		resultsTimer += Time.deltaTime;

		// if enough time passes, let player tap-to-continue
		if (resultsTimer > enableTransitionTime && winBattleResults.activeSelf) {
			tapToContinueObject.SetActive(true);
		} else if (resultsTimer > enableTransitionTime && loseBattleResults.activeSelf) {
			// add buttons to load and quit
			loseAfterTimerObjects1.SetActive(true);

			if (resultsTimer > enableTransitionTime + 1.5f) {
				loseAfterTimerObjects2.SetActive(true);
			}
		}
	}
	// Update is called once per frame
	void Update () {
		if (!enemyMonster) {
			enemyMonster  = GameObject.FindObjectOfType<EnemyMonster>();
		} else if (actionEnabled) {

			if (enemyMonster.HasSecondSkill() && randomChanceOfSecondSkill < chanceToUseSecondSkill) {
				usingSecondSkill = true;
				secondsBetweenActions = enemyMonster.GetSecondsBetweenActions2();
				// then use 2nd skill instead of the original
			} else {
				usingSecondSkill = false;
				secondsBetweenActions = enemyMonster.GetSecondsBetweenActions();
				// use original skill
			}


			// handles status effects
			if (enemyMonster.GetCurrentStatus() == StatusEffect.Slow) {
				enemyMonster.IncrementActionTimer(Time.deltaTime / 2);
			} else if (enemyMonster.GetCurrentStatus() != StatusEffect.Para) { // Para simply stops timer increment, so do nothing if paralyzed
				enemyMonster.IncrementActionTimer(Time.deltaTime);
			}


			if (actionBarRectTransform.anchoredPosition.y != enemyMonster.GetActionBarYPos()) {
				actionBarRectTransform.anchoredPosition = new Vector2 (transform.position.x , enemyMonster.GetActionBarYPos());
			}
			TakeAction ();
			HandleActionBar();
		}
	}
	// Use this for initialization
	void Start () {
		enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
		enemyCombatController = GameObject.FindObjectOfType<EnemyCombatController>();

		actionBarImage = GetComponent<Image>();
		actionBarRectTransform = GetComponent<RectTransform>();

		randomChanceOfSecondSkill = Random.value;
	}
	void Awake () {
		enemyActionBar = GameObject.FindObjectOfType<EnemyActionBar>();
		playerClass = GameObject.FindObjectOfType<PlayerClass>();
		skillButtonControllers = GameObject.FindObjectsOfType<SkillButtonController>();
		enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();

		winBattleResults = GameObject.Find("Win Battle Results");
		loseBattleResults = GameObject.Find("Lose Battle Results");
		winBattleResults.SetActive(false);
		loseBattleResults.SetActive(false);

		levelUpHeader.SetActive(false);
	}
示例#7
0
    //杀死玩家或怪物
    private void OnCollisionEnter2D(Collision2D collision)
    {
        //玩家

        if (collision.gameObject.CompareTag("Player") && collision.GetType().ToString() == "UnityEngine.CapsuleCollider2D")
        {
            Debug.Log("掉落撞到玩家");
            playerHealth.DamegePlayer(100);
        }
        else if (collision.gameObject.CompareTag("Enemy"))
        {
            EnemyMonster enemy = (EnemyMonster)collision.gameObject.GetComponentInParent <EnemyMonster>();
            enemy.TakeDamage(50);
        }
    }
	public void TransitionMode () {
		if (allowTransition) {
			world.SetActive (!world.activeSelf);
			battle.SetActive (!battle.activeSelf);

			// destroy monster here
			enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
			if (battle.activeSelf == false && enemyMonster /*exists*/) {
				Destroy (enemyMonster.gameObject);
			}

			allowTransition = false;
		}

	}
	// Update is called once per frame
	void Update () {
		if (enemyMonster) {
			if (enemyMonster.GetCurrentHealth() <= 0) {
				if (!enemyIsConsumed) {
					EnemyDeath();	
				}
			} else if (enemyIsConsumed) {
				enemyIsConsumed = false;
			}

		} else if (battle.activeSelf) {
			enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();

			if (!enemyMonster) {
				// spawn new monster
				enemySpawnerController.Spawn();
				Debug.Log("Spawning Monster in backup");
			}
		}
	}
	// Update is called once per frame
	void Update () {
		// reinitialize enemyMonster variable each time, b/c after each battle, the previous one is destroyed.
		if (!enemyMonster) {
			enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
		} else {
			statusRectTransform.anchoredPosition = new Vector2 (transform.position.x , enemyMonster.GetHealthBarYPos());
			UpdateStatusEffect();

			if (enableStatusTimer) {
				remainingStatusTime -= Time.deltaTime;

				if (remainingStatusTime <= 0) {
					enemyMonster.SetCurrentStatus(StatusEffect.None);
					enableStatusTimer = false;
				}
			}
		}


	}
	// Update is called once per frame
	void Update () {
		if (!enemyMonster) {
			enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
		} else {
			maxHealth = enemyMonster.GetMaxHealth();
			currentHealth = enemyMonster.GetCurrentHealth();

			if (enemyMonster.GetCurrentStatus() == StatusEffect.Pois) {
				poisTimer += Time.deltaTime;

				if (poisTimer >= 2) {
					poisTimer = 0;

					int poisDamage = Mathf.CeilToInt(enemyMonster.GetMaxHealth() * .035f);
					enemyMonster.TakeDamage(poisDamage);
				}
			}

			GetComponent<RectTransform>().anchoredPosition = new Vector2 (transform.position.x , enemyMonster.GetHealthBarYPos());

			HandleHealthBar ();
		}
	}
	// Use this for initialization
	void Start () {
		playerClass = GameObject.FindObjectOfType<PlayerClass>();	
		enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
		eventSystem = GameObject.FindObjectOfType<EventSystem>();
		enemyStatusController = GameObject.FindObjectOfType<EnemyStatusController>();
	}
	// Use this for initialization
	void Start () {
		enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();
		playerClass = GameObject.FindObjectOfType<PlayerClass>();
	}
	// Use this for initialization
	void Start () {
		enemyMonster = GameObject.FindObjectOfType<EnemyMonster>();


		healthBarImage = GetComponent<Image>();
	}