protected virtual void Start() { target = GameObject.FindGameObjectWithTag("Player").transform; enemyCondition = gameObject.GetRequiredComponent <ConditionBehaviour>(); enemyCondition.ConditionStatChange += OnTakeDamage; attackRange = attackSpeed * attackTime + 0.5f; base.Awake(); }
protected void OnCollisionStay2D(Collision2D collision) { ConditionBehaviour cond = collision.gameObject.GetComponent <ConditionBehaviour>(); if (collision.gameObject.tag != gameObject.tag && cond != null) { StartCoroutine(Attack(collision.transform.position - transform.position)); } }
protected virtual void Start() { playerEnergy = gameObject.GetRequiredComponent <EnergyBehaviour>(); playerCondition = gameObject.GetRequiredComponent <ConditionBehaviour>(); playerEnergy.EnergyStatChange += OnEnergyChange; playerCondition.ConditionStatChange += OnConditionChange; save = GameManager.Instance.Save; playerEnergy.Energy = save.SavedPlayerEnergy; playerCondition.Condition = save.SavedPlayerCondition; attackRange = attackSpeed * attackTime + 0.5f; base.Awake(); }
IEnumerator Attack(Vector2 dir) { if (ActionTimer == 0) { ActionTimer += attackTime; objAnimator.SetTrigger("wilderbotAttack"); SoundManager.Instance.RandomSFX(enemyAttacks); StartCoroutine(MoveOverTime(dir, attackSpeed, attackTime)); if (dir.x > 0) { objRenderer.flipX = false; } else if (dir.x < 0) { objRenderer.flipX = true; } isAttacking = true; objCollider.enabled = false; RaycastHit2D[] hits = Physics2D.RaycastAll(transform.position, dir, attackRange); objCollider.enabled = true; if (!isBeingHit) { if (hits.Length > 0) { foreach (RaycastHit2D h in hits) { ConditionBehaviour cond = h.transform.gameObject.GetComponent <ConditionBehaviour>(); if (cond != null && cond.Condition > 0) { cond.Condition -= damage; } } } } yield return(new WaitForSeconds(attackTime)); isAttacking = false; } }
private void Update() { RaycastHit2D[] hits = Physics2D.RaycastAll(player.transform.position, Camera.main.ScreenToWorldPoint(Input.mousePosition) - player.transform.position, player.attackRange); PlayerHighlightingTarget = false; if (hits.Length > 0) { foreach (RaycastHit2D h in hits) { ConditionBehaviour cond = h.transform.gameObject.GetComponent <ConditionBehaviour>(); if (cond != null && cond.Condition > 0 && cond.tag != "Player") { PlayerHighlightingTarget = true; } } } }
IEnumerator AttackAbility() { objAnimator.SetTrigger("playerChop"); playerEnergy.Energy -= attackCost; ActionTimer += attackTime; Vector2 attackDirection = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position; StartCoroutine(MoveOverTime(attackDirection, attackSpeed, attackTime)); if (attackDirection.x > 0) { objRenderer.flipX = false; } else if (attackDirection.x < 0) { objRenderer.flipX = true; } IsAttacking = true; objCollider.enabled = false; RaycastHit2D[] hits = Physics2D.RaycastAll(transform.position, attackDirection, attackRange); objCollider.enabled = true; if (hits.Length > 0) { foreach (RaycastHit2D h in hits) { ConditionBehaviour cond = h.transform.gameObject.GetComponent <ConditionBehaviour>(); if (cond != null && cond.Condition > 0) { cond.Condition -= damage; } } } yield return(new WaitForSeconds(attackTime)); IsAttacking = false; }
// Use this for initialization void Awake() { destructibleRenderer = gameObject.GetRequiredComponent <SpriteRenderer>(); destructibleCollider = gameObject.GetRequiredComponent <Collider2D>(); condition = gameObject.GetRequiredComponent <ConditionBehaviour>(); }
// Use this for initialization void Awake() { playerCondition = GameObject.FindGameObjectWithTag("Player").GetRequiredComponent <ConditionBehaviour>(); conditionBarText = GetComponentInChildren <Text>(); conditionBarSlider = gameObject.GetRequiredComponent <Slider>(); }