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)); } } } }
private void Start() { if (character == null) { character = transform.parent.parent.GetComponent <AttackingCharacter>(); } }
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); } }
protected override void OnHitEnemy(AttackingCharacter enemyHit) { if (enemyHit is StandardEnemy) { (enemyHit as StandardEnemy).Freeze(freezeDuration); } base.OnHitEnemy(enemyHit); }
private void OnTriggerExit2D(Collider2D collision) { AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>(); if (enemy && enemy.type != character.type) { enemiesInRange.Remove(collision.transform); } }
private void OnTriggerStay2D(Collider2D collision) { AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>(); if ((enemy || collision.GetComponent <AttackableObject>()) && !enemiesInRange.Contains(collision.transform)) { enemiesInRange.Add(collision.transform); } }
private void OnTriggerExit2D(Collider2D collision) { AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>(); if (enemy || collision.GetComponent <AttackableObject>()) { enemiesInRange.Remove(collision.transform); } }
private void OnTriggerStay2D(Collider2D collision) { AttackingCharacter enemy = collision.GetComponent <AttackingCharacter>(); if (enemy && enemy.type != character.type && !enemiesInRange.Contains(collision.transform)) { enemiesInRange.Add(collision.transform); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.transform.CompareTag("Player")) { if (numOfTrails == 0) { timeToDamage = 1; } numOfTrails++; collidesWithPlayer = true; player = collision.transform.GetComponent <AttackingCharacter>(); } }
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>()); * }*/ }
protected override void OnHitEnemy(AttackingCharacter enemyHit) { base.OnHitEnemy(enemyHit); if (knockback) { area.DealDamageWithKnockback(secondaryDamage, kbForce); } else { area.DealDamage(secondaryDamage); } ability.ShowAoeIndicator(transform.position, aoeIndicator); }
// 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); } }
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); }
// 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>(); } }
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); } }
// 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); }
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; } }