//En función de donde este mirando el personaje paso una lista de tiles diferente. public override void Attack(UnitBase unitToAttack) { CalculateDamage(unitToAttack); CheckIfUnitHasMarks(unitToAttack); HideAttackEffect(unitToAttack); if (checkersAttack) { //UNDO CreateAttackCommand(unitToAttack); unitsCanJump--; //Importante esta llamada sea la primera CalculateAttackLogic(unitToAttack, true); //Quito el color del tile myCurrentTile.ColorDeselect(); transform.DOJump(currentTileVectorToMove, 1, 1, 1); //Cambio la rotación NewRotationAfterJump(unitToAttack.myCurrentTile); unitsAttacked.Add(unitToAttack); //Hago daño DoDamage(unitToAttack); CheckPasiveUpgrades(unitToAttack); myPanelPortrait.GetComponent <Portraits>().specialSkillTurnsLeft.text = unitsCanJump.ToString(); SoundManager.Instance.PlaySound(AppSounds.ROGUE_ATTACK); if (unitsCanJump >= 1) { LM.DeSelectUnit(); hasAttacked = false; CheckUnitsAndTilesInRangeToAttack(true); hasMoved = true; UIM.RefreshTokens(); LM.SelectUnit(0, this); UIM.CheckActionsAvaliable(); for (int i = 0; i < unitsAttacked.Count; i++) { currentUnitsAvailableToAttack.Remove(unitsAttacked[i]); } } else { //La base tiene que ir al final para que el bool de hasAttacked se active después del efecto. base.Attack(unitToAttack); hasAttacked = true; } } else if (extraTurnAttackAfterKill) { //UNDO CreateAttackCommand(unitToAttack); //Importante esta llamada sea la primera CalculateAttackLogic(unitToAttack, true); //Quito el color del tile myCurrentTile.ColorDeselect(); transform.DOJump(currentTileVectorToMove, 1, 1, 1); //Cambio la rotación NewRotationAfterJump(unitToAttack.myCurrentTile); //Hago daño DoDamage(unitToAttack); CheckPasiveUpgrades(unitToAttack); SoundManager.Instance.PlaySound(AppSounds.ROGUE_ATTACK); if (unitToAttack.isDead && extraTurnCount > 0) { extraTurnCount--; hasAttacked = false; hasMoved = false; UIM.RefreshTokens(); LM.DeSelectUnit(); UIM.CheckActionsAvaliable(); myPanelPortrait.GetComponent <Portraits>().specialSkillTurnsLeft.text = "0"; //Lo hago aquí para que cuando se seleccione nuevamente ya esté bien calculado. LM.tilesAvailableForMovement = new List <IndividualTiles>(LM.TM.OptimizedCheckAvailableTilesForMovement(movementUds, this, false)); for (int i = 0; i < LM.tilesAvailableForMovement.Count; i++) { LM.tilesAvailableForMovement[i].ColorMovement(); } LM.SelectUnit(movementUds, this); } else { //La base tiene que ir al final para que el bool de hasAttacked se active después del efecto. base.Attack(unitToAttack); hasAttacked = true; } } else { //UNDO CreateAttackCommand(unitToAttack); //Importante esta llamada sea la primera CalculateAttackLogic(unitToAttack, true); //Quito el color del tile myCurrentTile.ColorDeselect(); transform.DOJump(currentTileVectorToMove, 1, 1, 1); //Cambio la rotación NewRotationAfterJump(unitToAttack.myCurrentTile); //Hago daño DoDamage(unitToAttack); CheckPasiveUpgrades(unitToAttack); SoundManager.Instance.PlaySound(AppSounds.ROGUE_ATTACK); //La base tiene que ir al final para que el bool de hasAttacked se active después del efecto. base.Attack(unitToAttack); hasAttacked = true; } }