private void Setup(DamageData data) { this.damageData = data; gameObject.name = "Shooter"; weapon = gameObject.AddComponent <Weapon>(); transform.localPosition = Vector3.zero; enemyDuel = GetComponentInParent <EnemyDuel>(); }
public bool HasValidTargetOnRange(EnemyDuel targetToCheck = null) { if (targetToCheck) { return(listOfTargets.Any(tempTarget => tempTarget == targetToCheck.gameObject)); } if (listOfTargets != null) { return(listOfTargets.Count > 0); } return(false); }
public void Update() { if (towerTransform) { enemyOnRange.transform.position = towerTransform.position; } if (healthData.isDead) { CancelDuel(); return; } if (enemyDuel) { if (enemyDuel.GetComponent <Health>().isDead) { CancelDuel(); return; } } if (moverData.isMoving && (duelData.isMovingToDuel == false)) { CancelDuel(); return; } if (moverData.isMoving) { duelData.canAttack = false; } if (!enemyOnRange.HasValidTargetOnRange(enemyDuel)) { CancelDuel(); return; } if (enemyDuel == null) { enemyDuel = GetNonDuelingTarget(); } PrepareToDuel(); }
void CheckIfThereIsOtherNonDuelingTarget() { if (enemyDuel) { if (enemyDuel.IsDuelingWithMoreThanMe() == false) { return; } } var target = GetNonDuelingTarget(); if (target != enemyDuel) { CancelDuel(); enemyDuel = target; PrepareToDuel(); } }
public void CancelDuel() { if (enemyDuel) { enemyDuel.DisengageDuel(this); enemyDuel = null; } duelData.canAttack = false; if (healthData.isDead) { return; } if (towerTransform) { GetComponent <MoveToPoint>().SetTarget(this.anchorPoint); } }