Ejemplo n.º 1
0
    private void OnTriggerStay2D(Collider2D other)
    {
        if (other.gameObject.layer == LayerMask.NameToLayer("Foreground"))
        {
            Vector3Int tile = tilemap.layoutGrid.WorldToCell(new Vector3(transform.position.x, transform.position.y, tilemap.transform.position.z));

            lastTile   = tile;
            lastObject = other.transform;

            if (tilemap.HasTile(tile))
            {
                AttackingCharacter attChar = other.transform.parent.GetComponent <AttackingCharacter>();

                if (!transparent)
                {
                    StartCoroutine(MakeTransparent(tile));
                }
                else if (tilemap.GetColor(tile).Equals(nonTranspColor))
                {
                    transparent = false;
                    StartCoroutine(MakeTransparent(tile));
                }
            }
        }
    }
Ejemplo n.º 2
0
 private void Start()
 {
     if (character == null)
     {
         character = transform.parent.parent.GetComponent <AttackingCharacter>();
     }
 }
Ejemplo n.º 3
0
    public void OnTriggerEnter2D(Collider2D collision)
    {
        AttackingCharacter player = collision.GetComponent <AttackingCharacter>();

        if (collision.transform == GameManager.I.playerInstance.transform)
        {
            if (knockback)
            {
                //player.TakeDamage(damage);
                player.TakeDamageWithKnockback(damage, (player.transform.position - transform.position).normalized, knockbackForce);
            }

            if (worm != null)
            {
                player.TakeDamageOverTime(damage, 1, 3, worm.transform);
            }

            else
            {
                player.TakeDamageOverTime(damage, 1, 3);
            }

            Destroy(indicator.gameObject);
            Destroy(gameObject);
        }
    }
Ejemplo n.º 4
0
    protected override void OnHitEnemy(AttackingCharacter enemyHit)
    {
        if (enemyHit is StandardEnemy)
        {
            (enemyHit as StandardEnemy).Freeze(freezeDuration);
        }

        base.OnHitEnemy(enemyHit);
    }
Ejemplo n.º 5
0
    private void OnTriggerExit2D(Collider2D collision)
    {
        AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>();

        if (enemy && enemy.type != character.type)
        {
            enemiesInRange.Remove(collision.transform);
        }
    }
Ejemplo n.º 6
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>();

        if ((enemy || collision.GetComponent <AttackableObject>()) && !enemiesInRange.Contains(collision.transform))
        {
            enemiesInRange.Add(collision.transform);
        }
    }
Ejemplo n.º 7
0
    private void OnTriggerExit2D(Collider2D collision)
    {
        AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>();

        if (enemy || collision.GetComponent <AttackableObject>())
        {
            enemiesInRange.Remove(collision.transform);
        }
    }
Ejemplo n.º 8
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>();

        if (enemy && enemy.type != character.type && !enemiesInRange.Contains(collision.transform))
        {
            enemiesInRange.Add(collision.transform);
        }
    }
Ejemplo n.º 9
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.transform.CompareTag("Player"))
     {
         if (numOfTrails == 0)
         {
             timeToDamage = 1;
         }
         numOfTrails++;
         collidesWithPlayer = true;
         player             = collision.transform.GetComponent <AttackingCharacter>();
     }
 }
Ejemplo n.º 10
0
    void Start()
    {
        if (parent == null)
        {
            parent = transform.parent.GetComponent <AttackingCharacter>();
        }

        globalCDProgress = globalCooldown;

        abilities = new List <Ability>();

        // MENJATI

        if (SaveManager.I.gameState != null)
        {
            if (GameManager.I.currentLevel > 0)
            {
                foreach (string abName in SaveManager.I.gameState.abilities)
                {
                    foreach (GameObject ability in abilityPrefabs)
                    {
                        Ability ab = ability.GetComponent <Ability>();

                        if (ab.abilityName.Equals(abName))
                        {
                            AddAbility(ab);
                        }
                    }
                }
            }
            else
            {
                AddAbility(abilityPrefabs[0].GetComponent <Ability>());
                AddAbility(abilityPrefabs[1].GetComponent <Ability>());
            }
        }
        else
        {
            AddAbility(abilityPrefabs[0].GetComponent <Ability>());
            AddAbility(abilityPrefabs[1].GetComponent <Ability>());
        }

        GameManager.I.abilities = GetAbilities();

        UpdateAbilityButtons();

        /*foreach (GameObject prefab in abilityPrefabs)
         * {
         *  abilities.Add(Instantiate(prefab, transform).GetComponent<Ability>());
         * }*/
    }
Ejemplo n.º 11
0
    protected override void OnHitEnemy(AttackingCharacter enemyHit)
    {
        base.OnHitEnemy(enemyHit);

        if (knockback)
        {
            area.DealDamageWithKnockback(secondaryDamage, kbForce);
        }
        else
        {
            area.DealDamage(secondaryDamage);
        }

        ability.ShowAoeIndicator(transform.position, aoeIndicator);
    }
Ejemplo n.º 12
0
    // Update is called once per frame
    void Update()
    {
        if ((parent && parent.isDead))
        {
            parent = null;
            transform.SetParent(childObj.transform);
        }

        if (Vector2.Distance(lastPos, transform.position) > minSize)
        {
            lastPos = transform.position;

            CreateNewCollider(lastPos);
        }
    }
Ejemplo n.º 13
0
    private void Start()
    {
        GetComponent <CircleCollider2D>().radius = range;


        if (parent == null)
        {
            parent = transform.parent.GetComponent <AttackingCharacter>();
        }

        if (autolock == null)
        {
            autolock = transform.parent.GetComponentInChildren <AutolockTracker>();
        }

        am = (parent is PlayerWithJoystick ? (parent as PlayerWithJoystick).abilityManager : null);
    }
Ejemplo n.º 14
0
    // Use this for initialization
    void Start()
    {
        lastPos = transform.position;

        //col = GetComponent<CompositeCollider2D>();

        TrailRenderer tr = GetComponent <TrailRenderer>();

        time = tr.time;
        //minSize = tr.widthCurve.keys[0].value;
        minSize = 0.5f;
        maxSize = tr.widthCurve.keys[tr.widthCurve.length - 1].value;

        parentObj = GameObject.Find("Trails");

        if (!parentObj)
        {
            parentObj = new GameObject("Trails");
        }

        childObj = new GameObject("Trail");
        childObj.transform.SetParent(parentObj.transform);

        col           = childObj.AddComponent <CompositeCollider2D>();
        col.isTrigger = true;

        Rigidbody2D rb = childObj.GetComponent <Rigidbody2D>();

        rb.bodyType = RigidbodyType2D.Static;

        childObj.layer = LayerMask.NameToLayer("Hazardous");

        tc                  = childObj.AddComponent <TrailCollider>();
        tc.damage           = damage;
        tc.damageInterval   = damageTick;
        tc.streakMultiplier = dmgStreakMultiplier;

        if (parent == null)
        {
            parent = transform.parent.GetComponent <AttackingCharacter>();
        }
    }
Ejemplo n.º 15
0
    protected virtual void OnHitEnemy(AttackingCharacter enemyHit)
    {
        StartCoroutine(PlaySound("Hit"));

        if (knockback)
        {
            enemyHit.TakeDamageWithKnockback(damage, (enemyHit.transform.position - transform.position).normalized, kbForce);
        }
        else
        {
            enemyHit.TakeDamage(damage);
        }

        PlayerWithJoystick player;

        if (regenMana && (player = parent.GetComponent <PlayerWithJoystick>()))
        {
            player.IncreaseEnergy(damage);
        }
    }
Ejemplo n.º 16
0
    // metoda proverava da li karakter vidi target na zadatom range-u (od drugih karaktera i obstacle-a)

    public bool CanSee(Transform target, float range = Mathf.Infinity)
    {
        if (range == Mathf.Infinity && !weapons[equippedWeaponIndex].IsInRange(target))
        {
            return(false);
        }

        range = Mathf.Clamp(range, 0, maxRaycastDistance);

        Vector3 startCast = transform.position;
        Vector3 endCast   = target.position;

        Debug.DrawRay(startCast, endCast - startCast);

        RaycastHit2D[] results;

        results = Physics2D.CircleCastAll(startCast, 0.2f, (endCast - startCast).normalized, range, colFilter.layerMask);

        for (int i = 0; i < results.Length; i++) // ako mu je protivnik vidljiv (od zidova/prepreka)
        {
            AttackingCharacter attChar = results[i].transform.GetComponent <AttackingCharacter>();
            if (attChar && attChar.type == type)
            {
                continue;
            }

            if (results[i].transform.gameObject.layer == LayerMask.NameToLayer("Obstacles"))
            {
                return(false);
            }

            if (results[i].transform == target)
            {
                return(true);
            }
        }

        return(false);
    }
Ejemplo n.º 17
0
    public void OnTriggerEnter2D(Collider2D other)
    {
        if (parent != null && other.gameObject == parent.gameObject)                   // ako je projektil pogodio pucaca
        {
            return;
        }

        AttackingCharacter character = other.GetComponent <AttackingCharacter>();

        if (character != null && parent != null && character.type != parent.GetComponent <AttackingCharacter>().type&& character.IsAttackable())
        {
            OnHitEnemy(character);
            shot = false;

            return;
        }

        if (character != null && parent != null && character.type == parent.GetComponent <AttackingCharacter>().type)  // ako je pogodio karaktera istog tipa
        {
            return;
        }
    }