public IceEffect(IDamageable target, ISlowable slowable) { this.target = target; this.slowable = slowable; this.effectComponent = Resources.Load <EffectComponent>("EffectComponent_ice"); this.duration = effectComponent.duration; }
void OnTriggerExit2D(Collider2D collider) { ISlowable slowable = collider.gameObject.GetComponent <ISlowable>(); if (slowable != null) { slowable.unSlowed(); } }
void checkCurrentEnemyValidity() { if (isThereAnEnemyNearby()) { checkIfEnemyChanged(); } else { enemy = null; enemyISlowable = null; } }
public override void Fire() { shotCD += reloadSpeed; // slow all units within it's radius by a percentage. foreach (GameObject x in countEnemiesInCollider.creepsInsideCollider) { ISlowable slow = x.GetComponent <ISlowable>(); if (slow != null) { slow.BeSlowed(howMuchToSlowEnemies); } } }
private void Start() { mySlowable = GetComponent <ISlowable>(); if (mySlowable != null) { mySlowable.OnSlowed += OnSlowed; mySlowable.OnSlowEnd += OnEndSlow; } myRigidBody = GetComponentInChildren <Rigidbody>(); myRigidBody.useGravity = false; myRigidBody.freezeRotation = true; gravityForceHolder = myGravity.GravityForce; }
private void OnTriggerExit(Collider other) { if (other.gameObject.name == "Player") { Player player = other.GetComponent <Player>(); player.isInSlowZone = false; } ISlowable slow = other.gameObject.GetComponent <ISlowable>(); if (slow != null) { _slowableObjects.Remove(slow); slow.SetMaxSpeed(); } }
public override void UseActive(Vector3 position) { if (enemyLayer == 0) { enemyLayer = LayerMask.GetMask("Enemy"); } int nTurrets = Physics.OverlapSphereNonAlloc(position, activeRange, colsCache, enemyLayer); for (int i = 0; i < nTurrets; i++) { ISlowable enemy = colsCache[i].GetComponent <ISlowable>(); if (enemy != null) { enemy.Slow(slowTime, 0.5f); } } }
private void OnTriggerEnter(Collider other) { if (other.gameObject.name == "Player") { Player player = other.GetComponent <Player>(); player.isInSlowZone = true; } ISlowable slow = other.gameObject.GetComponent <ISlowable>(); Debug.Log(other); if (slow != null) { Debug.Log("++" + other); _slowableObjects.Add(slow); slow.SlowDown(); } }
private void slowEnemies() { if (ReferenceEquals(targetDetection, null)) { return; } float secondsSlowed = turretStats.GetStatValue(StatType.EFFECTDURATION); float slowReduction = turretStats.GetStatValue(StatType.SLOWREDUCTION); foreach (Transform target in targetDetection.CurrentTargets) { ISlowable enemyISlowable = target.GetComponent <ISlowable>(); if (enemyISlowable != null) { enemyISlowable.Slow(secondsSlowed, slowReduction); } } timer = 0f; }
void changeCurrentEnemy(Transform currentEnemy) { enemy = currentEnemy; enemyISlowable = enemy.GetComponent <ISlowable>(); }