// 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; } } }
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); }
//杀死玩家或怪物 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>(); }