public Coroutine TowerUnitDamage(Unit target, int damageAmount) { (int laneIndex, int sideIndex, int positionIndex) = GetPositionIdentifier(target); TowerUI sourceUI = towerManagers[1 - sideIndex].towerUIs[laneIndex]; UnitUI targetUI = FindUnitUI(target); return(StartCoroutine(SerialCoroutine( () => sourceUI.Attack(targetUI.transform.position), () => { targetUI.RenderUnit(); return null; }, () => damageTextManager.DamageTextPopup(targetUI.transform.position, $"-{damageAmount}") ))); }