public IEnumerator SetCharInPos(BaseCharacter currentCharacter, BattleTileScript bts, bool withArrivingAnim) { GridManagerScript.Instance.SetBattleTileState(bts.Pos, BattleTileStateType.Occupied); currentCharacter.UMS.CurrentTilePos = bts.Pos; currentCharacter.CurrentBattleTiles = new List <BattleTileScript>(); for (int i = 0; i < currentCharacter.UMS.Pos.Count; i++) { currentCharacter.UMS.Pos[i] += bts.Pos; GridManagerScript.Instance.SetBattleTileState(currentCharacter.UMS.Pos[i], BattleTileStateType.Occupied); BattleTileScript cbts = GridManagerScript.Instance.GetBattleTile(currentCharacter.UMS.Pos[i]); currentCharacter.CurrentBattleTiles.Add(cbts); } foreach (Vector2Int item in currentCharacter.UMS.Pos) { GridManagerScript.Instance.SetBattleTileState(item, BattleTileStateType.Occupied); } if (withArrivingAnim) { currentCharacter.SetUpEnteringOnBattle(); } else { currentCharacter.CharArrivedOnBattleField(); } if (currentCharacter.SpineAnim.CurrentAnim != CharacterAnimationStateType.Arriving.ToString()) { } yield return(BattleManagerScript.Instance.MoveCharToBoardWithDelay(withArrivingAnim ? 0.2f : 0, currentCharacter, bts.transform.position)); }