Example #1
0
 private void OnMissingTarget()
 {
     if (target != null && Vector2.Distance(target.transform.position, transform.position) > escapeDistance)
     {
         target = null;
         movement.ResetMovement();
     }
 }
 public void TryAttack(CharacterObjectController target)
 {
     if (Vector2.Distance(target.transform.position, transform.position) < weapon.range)
     {
         weapon.OnAttack(target, combatController);
         //  combatController.Attack(target.stats, weapon);
     }
 }
Example #3
0
 protected override void OnDead()
 {
     if (stats.health <= 0)
     {
         target = null;
         movement.ResetMovement();
         gameObject.SetActive(false);
     }
 }
Example #4
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        var characterCon = collision.GetComponent <CharacterObjectController>();

        if (characterCon != null && potentialTargets.Exists(potentialTar => potentialTar == characterCon.type) && target == null)
        {
            target = characterCon;
        }
    }
 public override void OnAttack(CharacterObjectController target, CombatController combatController)
 {
     //Debug.Log("Att pla: " + attackTime);
     //Debug.Log("cool pla: " + cooldown);
     //Debug.Log("time pla: " + Time.time);
     if (Time.time - attackTime > cooldown)
     {
         var newProjectile = Instantiate(projectile.gameObject, transform.position, Quaternion.identity);
         newProjectile.SetActive(true);
         attackTime = Time.time;
         var projectileComponent = newProjectile.GetComponent <Projectile>();
         projectileComponent.target           = target;
         projectileComponent.combatController = combatController;
         projectileComponent.rangeWeapon      = this;
     }
 }
    private void UpdatePath(CharacterObjectController target, Chunk chunk)
    {
        Vector3 startPosition = (path != null && path.Count > pathIterator + 1) ? (Vector3)path[pathIterator].position : transform.position;

        path = pathfinding.FindPath(chunk, target.currentChunk,
                                    startPosition, target.transform.position);
        pathIterator = 0;
        if (path != null)
        {
            Vector2 centerPosition = Vector2.zero;
            for (int i = 0; i < path.Count - 1; i++)
            {
                //Debug.DrawLine(new Vector3(path[i].position.x, path[i].position.y),
                //    new Vector3(path[i + 1].position.x, path[i + 1].position.y), Color.green, 10.0f);
                centerPosition    = path[i].position;
                centerPosition.x += 0.5f;                               // przesunięcie z wierzchołka płytki do jej środka
                centerPosition.y += 0.5f;                               //
                path[i].position  = centerPosition;
            }
        }
    }