private void OnCrystalDestroyed(EnemyCrystal crystal) { if (!hasCrystalTarget || IsCarryingCrystalState()) { return; } //if (IsSearchingState() && hasCrystalTarget && crystalTarget == crystal) if (IsSearchingState()) { if (crystal == crystalTarget) { hasCrystalTarget = false; crystalTarget = null; if (Util.crystalManager.HasValidCrystals()) { SetupUnitToSearchForCrystal(); } else { // What if the tower is destroyed? SetReturningState(); agent.SetDestination(tower.transform.position); } } } }
public void SetupUnitToSearchForCrystal() { crystalTarget = Util.crystalManager.FindValidCrystal(transform); crystalTarget.isTargeted = true; hasCrystalTarget = true; agent.SetDestination(crystalTarget.transform.position); SetSearchingState(); }
private void OnCrystalCreated(EnemyCrystal crystal) { foreach (Unit unit in units) { Snrk2Unit snrkUnit = (Snrk2Unit)unit; if (snrkUnit.IsIdleState() || snrkUnit.IsReturniningState()) { if (Util.crystalManager.HasValidCrystals()) { snrkUnit.SetupUnitToSearchForCrystal(); return; } } } }